是否可以根据第一个SELECT的结果运行另一个SELECT?
例如:
SELECT COUNT(*) FROM table1
如果结果为0,我想显示结果:
SELECT A, B, C FROM table2
如果第一个SELECT的结果不是0,则显示第一个查询的结果,然后显示第二个查询的结果。
答案 0 :(得分:2)
您当然可以根据第一个选择的结果运行第二个选择:
你可以这样做:
declare @count integer = (select count(*) from table1)
if @count = 0
select ... from table1
else
select ... from table2
答案 1 :(得分:0)
第一个查询的结果是计数,因此您可以使用该变量来避免重新运行查询。
DECLARE @count int = ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS )
IF @count > 0
BEGIN
SELECT TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION FROM INFORMATION_SCHEMA.COLUMNS
END
ELSE
BEGIN
SELECT @count AS total
END
答案 2 :(得分:0)
不应该为您的问题提供变量
if EXISTS (select * from table1)
select A, B, C from table2