gpt4 book ai didi

sql - 从多个表中选择的存储过程

转载 作者:搜寻专家 更新时间:2023-10-30 23:10:40 24 4
gpt4 key购买 nike

我创建了一个带参数的存储过程

ALTER procedure [dbo].[myprocedure](@myName char(20))
as
select param1
from table1
where name = @myName

现在这是可行的,但是当我尝试从其他表中选择参数时它不起作用我在第一次选择后尝试这样

(Select param2 table2)

但是我明白了

MS 512, Level 16, State 1, Procedure candidate, Line 3
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

有谁知道如何使用 select 从多个表中获取值?谢谢

最佳答案

在 Where 子句之后使用 IN 运算符而不是 =

ALTER procedure [dbo].[myprocedure](@myName char(20))
as

select param1
from table1
where name = @myName

---
select param1
from table1
where name IN (Select param2 from table2)

编辑

select param1
from table1
where name = @myName
union
Select param2
from table2

请注意,UNION 将在合并 table1 和 table2 的结果集后删除重复值。

要保留重复值,请使用 UNION ALL

关于sql - 从多个表中选择的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20919200/

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