如果表中不存在ID,则返回NULL列

时间:2010-12-08 19:21:34

标签: sql-server

对于下面的问题,我有一个左联接的解决方案,但我正在寻找更有效的查询

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

返回表中所有现有的“Ids”。现在,如果表中不存在Id,我希望返回所有带有空列的ID。

EX:结果必须包含3和5,尽管表中不存在ID

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

1 个答案:

答案 0 :(得分: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

这应该有用。