Sql server 子查询返回了1个以上的值错误
运行此代码时,我得到了错误 子查询返回了多个值。这是不允许的,因为 子查询后面是=,!=,=或者当子查询用作 表情Sql server 子查询返回了1个以上的值错误,sql-server,Sql Server,运行此代码时,我得到了错误 子查询返回了多个值。这是不允许的,因为 子查询后面是=,!=,=或者当子查询用作 表情 如果case语句返回的值超过1,请帮助您的子查询 您必须只返回一个值,因为此子查询在CR表的每行执行 可以在每个子查询中使用TOP 1 例如: SELECT CASE CR.claim_status WHEN 'RC' THEN (SELECT ins_clause_no FROM tbl_rej_c
如果case语句返回的值超过1,请帮助您的子查询 您必须只返回一个值,因为此子查询在CR表的每行执行 可以在每个子查询中使用TOP 1 例如:
SELECT
CASE CR.claim_status
WHEN 'RC'
THEN (SELECT ins_clause_no
FROM tbl_rej_code_master RCM
WHERE CR.s_no IN (SELECT s_no
FROM claim_rejection_code_trans CRCT
WHERE CRCT.irrmp_sr_no = RCM.rej_srno))
END
FROM
tblclaimregistration CR
SELECT
CASE CR.claim_status
WHEN 'RC' THEN (SELECT clause_no
FROM claim_rejection_code_trans CRCT
WHERE CR.s_no = CRCT.s_no)
END AS Clause_No
FROM
tblclaimregistration CR;
错误消息很清楚,子查询返回多行。还有什么不清楚的?没有@Sreenu131的命令吗?@Larnu只有ORDER BY,我忘了说谢谢broAs@Sami说,这里的错误很清楚。当子查询返回超过1行的不同值时,您希望发生什么?如果子查询返回值为'RC'和'AB'的行,则CASE表达式的计算结果是否仍应为true?或者您真的希望子查询只返回1行吗?如果是这种情况,那么您似乎需要在子查询的WHERE中包含更多的条件,或者您没有正确理解您的数据,它应该返回多行。如果没有ORDER BY,则可能会返回一个随机行,而该随机行很可能不是OP后面的行。Hi@Larnu这是真的。我忘了写订单了。谢谢你的提示。
SELECT
CASE CR.claim_status
WHEN 'RC'
THEN (SELECT TOP 1 ins_clause_no
FROM tbl_rej_code_master RCM
WHERE CR.s_no IN (SELECT s_no
FROM claim_rejection_code_trans CRCT
WHERE CRCT.irrmp_sr_no = RCM.rej_srno ORDER BY <Your Column>))
END
FROM
tblclaimregistration CR
SELECT
CASE CR.claim_status
WHEN 'RC' THEN (SELECT TOP 1 clause_no
FROM claim_rejection_code_trans CRCT
WHERE CR.s_no = CRCT.s_no ORDER BY <Your Column>)
END AS Clause_No
FROM
tblclaimregistration CR;