【发布时间】:2019-12-23 21:10:09
【问题描述】:
我有一个返回多行的子查询,这是我需要的。但我得到了错误:
子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
我的查询如下所示:
SELECT
number,
req.dv_cat_item,
req.dv_stage,
req.dv_state req_state,
u.dv_u_lob,
u.dv_location,
req.opened_at,
req.closed_at,
req.dv_closed_by,
(SELECT name FROM sc_item_option vars
OUTER APPLY STRING_SPLIT(vars.value, ',') s
LEFT JOIN cmdb_ci_server AS c ON c.sys_id =s.value
JOIN sc_item_option_mtom mtom ON vars.sys_id = mtom.sc_item_option
JOIN sc_req_item req ON mtom.request_item = req.sys_id
WHERE mtom.request_item = req.sys_id
AND item_option_new = '915ec43a13ff520012c73482e144b002') --as [Server]
FROM
sc_req_item req
JOIN
sys_user u ON u.sys_id = req.u_requested_for
AND req.dv_cat_item = 'system id request'
AND req.sys_id IN ('a0880b7c1bb1c41c5c68b8061a4bcb99', '6a066d111bb14cd0fafc1f861a4bcb2b')
我尝试使用 where exists 并且尝试将该子查询移到最后 4 行之下。到目前为止没有运气。
谁能帮忙?
谢谢
【问题讨论】:
-
您希望如何表示多行?
-
您在外部查询和子查询中都有表和别名
sc_req_item AS req。您是否打算将子查询与外部查询相关联?当您说您需要子查询来返回多个结果时,似乎您需要关联它,或者您想要重复的行。哪个是正确的? -
@GordonLinoff,嗨,戈登,我想要多行/重复行
-
@EricBrandt,我想让其他列在另一行中重复。我是 SQL 新手,所以我不确定在这种情况下是什么相关性。我会仔细阅读的。
标签: sql sql-server subquery