sql - 我可以有多个选择但只返回一个结果集吗

标签 sql

如果我有多个选择,如下所示:

select * from A where A.name = 'linköping'

IF @@ROWCOUNT = 0
begin
    select * from A where A.amount = 45
end

...如果第一个选择返回内容,我会得到 1 个结果集。但是如果它运行第二个,我会得到两个结果集;第一个没有行,第二个有一些行。

如果运行第二个选择,有没有办法只返回第二个结果集?

我写这样的代码是因为 Andrey Gordeev 对这篇文章的回答:Can you have if-then-else logic in SQL?

(MSSQL 2000)

谢谢!

最佳答案

您需要通过检查在运行选择之前是否会返回任何结果来阻止第一次选择。

例如:

IF EXISTS (SELECT 1 FROM A WHERE A.name = 'linköping')
BEGIN
    SELECT * FROM A WHERE A.name = 'linköping'
END
ELSE 
BEGIN
    SELECT * FROM A WHERE A.amount = 45
END

关于sql - 我可以有多个选择但只返回一个结果集吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132192/

相关文章:

SQL 查询返回不需要的值选择计数名称姓氏返回所有记录

mysql - 为 MySQL 数据库编写查询时出现问题

c# - 使用 C# 将 FoxPro 表导入 SQL - 一个表有效,一个无效

sql - 在mysql中如何将两个表相乘?

sql - firebird MON$STATEMENTS 插入、删除、更新

sql - 如何从数据库文本字段中删除html标签

sql - 按 SQL 进行分组并计数

sql - 如何在plpgsql中使用变量作为字段类型?

mysql - sql查询来检查2个事件是否重叠

mysql - 为什么这个 SQL 查询有效?