我不太擅长 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/

10-11 07:02