我有一个选择查询。如果不返回任何行,我想用另一个选择替换该选择查询。
例如假设我有:
Select * from Temp2
if (@@rowcount=0)
select * from Temp1
在 c# 端,我将其作为数据集检索。因此,如果没有返回任何行,它将进行另一次选择。但是这个选择将在 Tables[1] 而不是 Tables[0] 中。
所以本质上,我想要做的是将 sql 存储过程中的第一个选择结果替换为最后一个如果@@rowcount = 0。 我相信这是可以做到的。我想要一个整洁的解决方案。
我可以这样做:
if ((select count(ID) from Temp2) =0)
select * from Temp1
else
select * from Temp2
但我有 3 个选择。我想用最多 2 个选择来完成它,因为我的选择语句比给出的简单示例更复杂,而且我不喜欢重复相同的选择两次(例如在 Temp2 上选择)。
谢谢
最佳答案
select * from Temp2
UNION ALL
select * from Temp1
where not exists (select * from Temp2)
关于c# - SQL Select - 作为一个返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1091170/