我正在尝试用一个条件来查询条件,看看我将显示哪个列表但是我有这个错误ORA-01427:单行子查询返回多行.
查询是这样的:
select
CASE WHEN action_type like 'Trigger Severity' THEN (select cast(SEVERITY as varchar2(255)) name from SURV_TRIGGER_SEVERITY_LIST)
WHEN action_type like 'Host Group' then (select cast(name as varchar2(255)) name from Surv_List.groups)
WHEN action_type like 'Host' then (select cast(name as varchar2(255)) name from tn_tree)
END display_value
from surv_action_type_list
where id = 0
是否可以在案例条件中调用多行的查询?
最佳答案 我会分多步完成这个.获取操作类型,然后发出相应的查询.无论您是在前端还是在存储过程中使用此逻辑,都可能取决于许多其他事情.
如果你绝对需要这样做,那么你可以尝试这样的事情:
SELECT
SQ.display_value
FROM
surv_action_type_list SATL
INNER JOIN
(
SELECT
'Trigger Severity' action_type,
CAST(severity AS VARCHAR2(255)) display_value
FROM
SURV_TRIGGER_SEVERITY_LIST
UNION ALL
SELECT
'Host Group' action_type,
CAST(name AS VARCHAR2(255) display_value
FROM
Surv_List.groups
UNION ALL
SELECT
'Host' action_type,
CAST(name AS VARCHAR2(255) display_value
FROM
tn_tree
) SQ ON
SQ.action_type = SATL.action_type
WHERE
SATL.id = 0