例如,我有一个像这样的表 Emp。
----------------------
eName | eId
----------------------
Anusha 1
Sunny 2
假设我正在寻找一个 id 为 3 的条目。我想编写一个查询来找到该行并显示它。但如果它没有找到它,它应该显示一个默认行 (temp,999)
select case
when (total != 0) then (select eName from Emp where eId = 3)
when (total == 0) then "temp"
end as eName,
case
when (total != 0) then (select eId from Emp where eId = 3)
when (total == 0) then 999
end as eId
from Emp,(select count(*) as total from Emp where eId = 3);
使用我编写的这个查询,它给了我两行结果。
temp 999
temp 999
我认为这是因为
(select count(*) as total from Emp where eId = 3)
查询列表中的这个查询。
我尝试使用 distinct 子句,它只给了我一行。但是我有点怀疑我是否弄乱了查询并且只是试图使用黑客来做到这一点。请建议是否有更好的方法来做到这一点或者我是否错了。