如果我有多个选择,如下所示:
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/