2014-07-17 1 views
-3

I이 동적으로 변경하려고하지만 데이터 세트에 붙어 ..
예하는
FROM 문어떻게이 문을 동적 SQL로 변경합니까?

SELECT * WHERE도 (1,2)

및 IN ID 1,2 B
로부터
SELECT ID에서 온 WHERE 유형 = '% XXX %'

문 위의 반환 할 수 있습니다 내가 @id를 선언하려고하지만 난 어떤 ID가없는 많은 수
ea

그럼, 생각 좀 해보시겠습니까?
는 제안을 주셔서 감사합니다 :)

+0

제안 하나보고 결과 집합을 반환해야, 내부 조인 사용할 수 있습니다. – Jodrell

+0

질문을 명확히하고 싶습니다. 내가 무슨 질문을 이해할 수 없습니까 – gazzwi86

답변

0
SELECT * FROM A 
WHERE id IN (
    SELECT id FROM B 
    WHERE type='%xxx%') 

이는 subquery라고합니다.

EDIT : 하위 쿼리를 사용할 수없고 변수를 사용하려는 경우 임시 테이블을 선언하고 A 테이블을 해당 테이블과 조인 할 수 있습니다.

DECLARE @C table (id int) 

INSERT @C (id) 
SELECT id FROM B 
WHERE type='%xxx%' 

SELECT A.* 
FROM A INNER JOIN @C c ON A.id = c.id 
+0

이 경우에 하위 쿼리를 사용할 수 없다면 (어떤 이유로) ID id (1,2)에 대해 @id를 선언 할 수 있습니까? – zzhe

+0

임시 테이블을 변수로 사용하여 솔루션을 추가했습니다. – Simon

0
SELECT A.* FROM A 
INNER JOIN B 
WHERE B.type='%xxx%' 
AND A.ID = B.ID 

아마도 당신은 그래서 그것을 읽을 수있는 질문을 다시 작성하십시오 그것은 당신에게 당신이