如果我有多个这样的选择:
select * from A where A.name = 'linköping'
IF @@ROWCOUNT = 0
begin
select * from A where A.amount = 45
end
Run Code Online (Sandbox Code Playgroud)
...如果第一个选择返回东西,我得到1个结果集.但如果它运行第二个,我得到两个结果集; 第一个没有行,第二个有一些行.
有没有办法只在第二个选择运行时返回第二个结果集?
我写这样的代码是因为Andrey Gordeev对这篇文章的回答:你能在SQL中使用if-then-else逻辑吗?
(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
Run Code Online (Sandbox Code Playgroud)