1

我有一个存储过程,它返回与以下类似的多个结果集:

ALTER PROCEDURE sp_XXXX 
(
    XXXXXX
)
AS
SET NOCOUNT ON

SELECT XXXXXXX    


IF @@ROWCOUNT = 0
    SELECT     XXXXXXX



RETURN

如果报告有数据,我希望我的报告使用第一个结果集,或者在第一个为空的情况下使用第二个结果集。有什么帮助吗?

4

1 回答 1

1

在存储过程中“联合所有”你的两个结果集。如果您需要将它们区分开来,请添加一个派生列来指示原始结果集。

select 'ds1' as dataset, *
from table1
union all
select 'ds2' as dataset, *
from table2

再试一次

将结果集 1 转储到临时表中,如果它为空,则仅执行第二个查询。

伪代码:

select * into #tempResult 
from table 1

if table1 is empty 

select * from table2
于 2009-02-19T21:25:33.060 回答