我正在使用 SQL服务器。 我有下表
Name Number
A 123
B 456
C 789
D 000
我有两个名字。我想编写一个sql语句,以便我可以选择检查表中是否存在第一个给定的名称。
例如,
实现它的最有效但通用的SQL语句是什么? (我的意思是“泛型”是我想写一个适合大多数Retional SQL DB而不仅仅是SQL服务器的sql语句)
提前致谢!
更新 我的意思是说“空行”时返回“无行”。我为错误的措辞道歉。
答案 0 :(得分:5)
select top 1 number from (
select 1 pos, number where name =@a
union all
select 2, number where name= @b)
order by pos
答案 1 :(得分:4)
您可以在没有union all
的情况下执行此操作:
select top 1 t.*
from table t
where name in (@name1, @name2)
order by (case when name = @name1 then 1 else 0 end) desc;