2014-06-20 1 views
1

나는 다른 테이블에서 결과를 얻으려고하고있다. 이름은 1111 인 경우 이름은 2222 다음SQL 문에 문 하위 쿼리에서 값을 얻는 방법

SELECT CASE 

WHEN type='111111' 

THEN (SELECT * FROM db1) 
ELSE (SELECT * FROM db2) 
FROM db_name 

문제가 표 2 SELECT * FROM 경우 다음 표 1 SELECT * FROM?

+1

문법에 문제가 있습니다. SQL을 사용하면 문제가 발생하지 않습니다. – dasblinkenlight

+0

SQL에서 "type"값을 검색 할 것으로 예상되는 위치는 어디입니까? (따라서 111111과 비교할 수 있습니다.) – Volvox

+0

대소 문자는 결과 집합을 반환 할 수 없습니다. 대신 식을 반환합니다. 자세한 내용은 http://msdn.microsoft.com/en-IN/library/ms181765(v=sql.105).aspx를 참조하십시오. 이 시나리오의 경우 if 문을 사용하여 처리 할 수 ​​있습니다. 또는 다른 방법은 쿼리를 동적으로 크레이 팅 (craete)하여 실행하는 것입니다. – Roopesh

답변

0

이 유에게 대답

Select db1.* from db1 join db_name on 1=1 where db_name = '1111111' 
union all 
Select db2.* from db2 join db_name on 1=1 where db_name <> '1111111' 
1

다음과 같이하십시오 줄 것이다 :

SELECT 
CASE 
    WHEN COLUMN1='XYZ' THEN (SELECT SINGLE_COL FROM DB1) 
    ELSE (SELECT SINGLE_COL FROM DB1) 
END 
FROM TABLE_NAME 

을 내부 쿼리가 단일 값을 반환해야합니다 어디.

관련 문제