是否可以根据第一个 SELECT 的结果运行另一个 SELECT?
例如:
SELECT COUNT(*) FROM table1
如果结果为 0,我想显示结果:
SELECT A, B, C FROM table2
如果第一个 SELECT 的结果不是 0,则显示第一个查询的结果并 IGNORE 第二个。
是否可以根据第一个 SELECT 的结果运行另一个 SELECT?
例如:
SELECT COUNT(*) FROM table1
如果结果为 0,我想显示结果:
SELECT A, B, C FROM table2
如果第一个 SELECT 的结果不是 0,则显示第一个查询的结果并 IGNORE 第二个。
您当然可以根据第一个结果运行第二个选择:
你可以这样做:
declare @count integer = (select count(*) from table1)
if @count = 0
select ... from table1
else
select ... from table2
第一次查询的结果是计数,因此您可以使用该变量来避免重新运行查询。
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
您的问题不需要变量
if EXISTS (select * from table1)
select A, B, C from table2