c# - SQL Select - 作为一个返回

标签 c# asp.net sql sql-server-2005

我有一个选择查询。如果不返回任何行,我想用另一个选择替换该选择查询。

例如假设我有:

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/

相关文章:

jquery - 不要调用 BlockUI 来进行需要很少时间的 ajax 调用

不依赖 IIS 的 ASP.NET Web API 应用程序

SQL批量重新标记项目

mysql - SQL - 试图找到两个表之间的最大计数

php - Mysql 到 PDO 代码转换

c# - 将键发送到没有输入元素的页面

c# - XAML:用户控件未将更改传播到绑定(bind)源

asp.net - 两个css文件冲突

c# - WPF 动画不适用于 "fast"属性更改

c# - 函数 RemoveChild(XmlNode 节点)在 C# 中失败