2010-12-08 36 views
1

我有左邊的一個解決方案加入了下面的問題,但我正在尋找更高效的查詢返回NULL列,如果不存在於表中的ID

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

返回所有現有的「IDS」在桌子裏。現在,我希望所有的ID都返回空列,如果Id不存在於表中。

EX:結果雖然標識表中沒有

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

與LEFT OUTER JOIN相比,可能無法更有效地完成此操作。我必須問。你究竟想要做什麼?也許這是屬於編程而不是SQL查詢的東西。聞起來就是這樣。 :) – Teekin 2010-12-08 19:23:13

+1

我們在談論什麼味道的SQL? MySQL的? SQL Server?甲骨文?別的東西...? – rsenna 2010-12-08 19:35:09

回答

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這應該工作。

相關問題