Sql server 从一个存储过程调用,将结果集返回到另一个存储过程,以合并该结果集

Sql server 从一个存储过程调用,将结果集返回到另一个存储过程,以合并该结果集,sql-server,Sql Server,我有一个提供一个输入参数的存储过程。它比较同一表中两列的值,并显示它是“可用”还是“不可用”。它将该表的所有第30行作为结果集返回。当我运行它时,它就像 1 available 2 available 3 not available 4 not available 5 not available 6 available 7 not available 8 not available 9 available 10 available 11 available

我有一个提供一个输入参数的存储过程。它比较同一表中两列的值,并显示它是“可用”还是“不可用”。它将该表的所有第30行作为结果集返回。当我运行它时,它就像

1   available
2   available
3   not available
4   not available
5   not available
6   available
7   not available
8   not available
9   available
10  available
11  available
12  not available

但是我想配对1和2,然后是3和4。然后使用or运算符显示“可用”或“不可用”。假设1是“可用”的,2是“可用”的,然后将其显示为“可用”。只有该对的两个值都可用,然后将其显示为“不可用”。如何使用上述存储过程的结果集编写另一个存储过程。现在,这个存储过程的结果集是30行,但我想通过1和2、3和4的配对得到15个结果集,依此类推。我想我必须将一个存储过程调用到另一个过程,但如何在第二个存储过程中比较这些结果呢。 多谢各位

-- Declare a table variable that captures
-- the output from your SP
declare @T table
(
  ID int,
  A varchar(15)
)

-- Add rows from SP to @T
insert into @T
exec GetValues

-- Query the table variable
select T1.ID as ID1,
       T2.ID as ID2,
       case when 'available' in (T1.A, T2.A)
            then 'available' 
            else 'not available'
       end as A 
from @T as T1
  inner join @T as T2
    on T1.ID + 1 = T2.ID
where T1.ID % 2 = 1
测试数据的结果:

ID1         ID2         A
----------- ----------- -------------
1           2           available
3           4           not available
5           6           available
7           8           not available
9           10          available
11          12          available

只有该对的两个值都可用,然后将其显示为“不可用”。->如果两个值都是“可用”的,您想显示“不可用”,还是我读错了?请更改过程[dbo].[check]@Type int AS BEGIN-SET NOCOUNT ON,以防止额外的结果集干扰SELECT语句。不计数;-如果@Type=1在TOneOccupy