我不太擅长 SQL,所以请帮助我。
在我的存储过程中,我得到了一个参数。
然后,基于此参数,我想从另一个表中获取 ID 并将此 ID 放入我的另一个变量中,但问题是基于此参数 ID 可能是多个。
DECLARE @RateID int;
SET @RateID = (
Select [dbo].[Rate].RateID
from [dbo].[Rate]
Where [dbo].[Rate].Rate = 160
)
在这里我收到错误,因为
Subquery returned more than 1 value
如何从子查询结果中获取第一个值并设置为@RateID? 最佳答案
您可能想像这样尝试:
DECLARE @RateID int;
SET @RateID = (
Select Top 1 [dbo].[Rate].RateID
from [dbo].[Rate]
Where [dbo].[Rate].Rate = 160
)
就像在您当前的查询中一样,您的表可能有超过 1 行满足条件
Rate = 160
,因此 select
查询将返回超过 1 行,您无法将其存储在单个变量中。但是在 MYSQL 中你必须使用
LIMIT 1
因为 TOP 1
在 MYSQL 中不起作用。关于mysql - 如何从SQL中的子查询结果设置为变量第一个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20249076/