2010-12-08 12 views
1

나는 왼쪽에 하나 개의 솔루션은 아래 질문에 대한 합류,하지만 난반환 NULL 열이 ID는 테이블에 존재하지 않는 경우

Select * from table1 where Id in (1,2,3,4,5); 

반환에게보다 효율적인 쿼리에 대한 기존의 모든 "IDS"를 찾고 있어요 테이블에. ID가 테이블에 없으면 모든 ID가 null 열로 반환되기를 바랍니다.

EX 다음 ID가 테이블

ID Name Designation 
1 John Employee 
2 Nar Manager 
3 **NULL** **NULL** 
4 Esh Executive. 
5 **NULL** **NULL** 
+3

LEFT OUTER JOIN보다 효율적으로이 작업을 수행 할 방법이 없습니다. 나는 묻는다. 너 정확히 뭘 하려구? 아마도 이것은 SQL 쿼리가 아닌 프로그래밍에 속한 것입니다. 그렇게 냄새가 난다. :) – Teekin

+1

우리는 어떤 종류의 SQL을 사용하고 있습니까? MySQL은? SQL Server? 신탁? 다른 것...? – rsenna

+0

SQL Server 2005를 사용하는 SQL Server의 풍미 – Nash

답변

3
select x.id, y.name, y.designation 
from (
select row_number() OVER(order by id) as id 
from table1 
) x 
left join table1 y 
on x.id = y.id 

에 존재하지 않는하지만 결과는이 작동한다고 3, 5를 포함해야합니다.

+0

내 쿼리는 항상 ID를 동적으로 가져옵니다. – Nash

관련 문제