waq*_*med 2 c# sql asp.net sql-server-2005
我有一个选择查询.如果不返回任何行,我想用另一个select替换该select查询.
比如说我有:
Select * from Temp2
if (@@rowcount=0)
select * from Temp1
Run Code Online (Sandbox Code Playgroud)
在c#end,我将其作为数据集检索.因此,如果没有返回任何行,它将执行另一个选择.但是这个选择将在表[1]而不是表[0]中.
基本上,我想要做的是将sql存储过程中的第一个选择结果替换为最后一个if @@ rowcount = 0的结果.我确信这可以完成.我想要一个整洁的解决方案.
我可以这样做:
if ((select count(ID) from Temp2) =0)
select * from Temp1
else
select * from Temp2
Run Code Online (Sandbox Code Playgroud)
但我有3个选择.我想用最多2个选项来做这个,因为我的select语句比给出的简单例子更复杂,我不喜欢重复相同的选择两次(例如在Temp2上选择).
谢谢
select * from Temp2
UNION ALL
select * from Temp1
where not exists (select * from Temp2)
Run Code Online (Sandbox Code Playgroud)