1

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

例如:

SELECT COUNT(*) FROM table1   

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

SELECT A, B, C FROM table2  

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

4

3 回答 3

2

您当然可以根据第一个结果运行第二个选择:

你可以这样做:

declare @count integer = (select count(*) from table1)

if @count = 0
    select ... from table1
else
    select ... from table2
于 2013-04-06T14:31:44.610 回答
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
于 2013-04-06T18:31:50.240 回答
0

您的问题不需要变量

if EXISTS (select * from table1)
    select A, B, C from table2
于 2013-04-06T23:53:20.177 回答