对于下面的问题,我有一个左联接的解决方案,但我正在寻找更有效的查询
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**
答案 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
这应该有用。