gpt4 book ai didi

sql-server - 从一个返回结果集的存储过程调用到另一个存储过程以组合该结果集

转载 作者:行者123 更新时间:2023-12-04 05:40:10 25 4
gpt4 key购买 nike

我有一个提供一个输入参数的存储过程。它比较同一个表中两个列的值,并显示它是“可用”还是“不可用”。它将该表的所有行 (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 是 'available' 并且 2 是 'available' ,那么将它显示为 'available' 。只有该对的两个值都可用,然后将其显示为“不可用”。我将如何使用上述存储过程的结果集编写另一个存储过程。现在这个存储过程的结果集是 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

关于sql-server - 从一个返回结果集的存储过程调用到另一个存储过程以组合该结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11360789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com