Declare @a varchar(100);
If @a = select productname from product
上述查询引发错误,因为我的sql查询(从产品中选择产品名称)返回多个值。
有人可以帮我吗?
答案 0 :(得分:1)
尝试类似的东西:
Declare @a varchar(100);
SELECT @a = 'MyProduct'
然后选择
If @a = select TOP 1 productname from product ORDER BY <some field>
OR
If @a IN (select productname from product)
但是,您如何知道要匹配的产品;您可能需要一个WHERE
子句。一些样本数据和预期结果会有所帮助。
答案 1 :(得分:0)
请注意,在这种情况下,您需要将SELECT
查询放在括号内!您还应注意,选择查询在这种情况下不应返回多个值。因此,要解决这些问题,您需要将其编写为:
Declare @a varchar(100);
If @a = (select TOP 1 productname from product)
但是,从逻辑上看,您的查询似乎是无效的,因此您应该重新考虑它,例如,您需要说,要使用哪种产品检查@a?您可能需要添加一些过滤器以进行查询和/或将ELSE
添加到if中,等等。
您可能还需要阅读@PeterSmith的答案(使用IN
...)