SELECT基于另一个SELECT的结果

时间:2013-04-06 14:20:50

标签: sql sql-server sql-server-2008

是否可以根据第一个SELECT的结果运行另一个SELECT?

例如:

SELECT COUNT(*) FROM table1   

如果结果为0,我想显示结果:

SELECT A, B, C FROM table2  

如果第一个SELECT的结果不是0,则显示第一个查询的结果,然后显示第二个查询的结果。

3 个答案:

答案 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