大家好, 这是我的疑问:
Hello all, This is my query :
DECLARE @execquery AS NVARCHAR(MAX) DECLARE @SELECT VARCHAR(MAX) = (SELECT UserCode + '_EmailAddressInfo' FROM SUser_Master) SET @execquery = 'SELECT '+ @SELECT + '.EmailId FROM '+ @SELECT + ' GROUP BY '+ @SELECT + '.EmailId ' EXEC(@execquery )但错误发生 子查询返回超过1值。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。 删除了SHOUTING - OriginalGriff [/ edit]
But Error Is Occured Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. [edit]SHOUTING removed - OriginalGriff[/edit]
推荐答案错误非常自我解释。您的SELECT查询返回多个值 - 并且您不能为一个NVARCHAR分配多个值。 试试这个: The error is pretty self explanatory. Your SELECT query returns more than one value - and you can't assign more than one value to a single NVARCHAR. Try this: DECLARE @SELECT VARCHAR(MAX) = (SELECT UserCode + '_EmailAddressInfo' FROM SUser_Master WHERE myColumn='Some Value that only returns a single row')
Hello Ankit, Hello Ankit, DECLARE @SELECT VARCHAR(MAX) = (SELECT UserCode + '_EmailAddressInfo' FROM SUser_Master)
在这里你正在尝试将查询结果存储到变量@SELECT。 但是,如果此查询返回多个值,该怎么办? SQL迷惑它应该存储哪个值? 这就是为什么错误说SubQuery返回多个值。 这里有你一些选项...... 你要么把特定的条件放回一个正确的值... 或者从从SUser_Master中选择前1个userCode中取得前1个。(最后选择我)。 或结果Concat(使用','或'|'等)并将其存储到您的变量中。 希望您已经理解了这个问题,这可能会对您有所帮助。
Here you are trying to store result of the Query to a variable @SELECT. But what if this Query returns more than one value? SQL got confused that which value it should store? that's why error says "SubQuery Returns More Than One Value." Here You Have some options... Either you put specific where condition that returns exact one value... Or Take top 1 like "Select top 1 userCode from SUser_Master".(Last choice for me). Or Concat the Result (using ',' or '|' or etc.) and store that into your variable. Hope You have understand the issue and this might help you.
更多推荐
SQL Server查询错误
发布评论