我的条款DECODE
中WHERE
有这样的:
Where id = decode('&flag','Yes',(Select id from tab where id > 10),0)
如果子查询返回一篇文章,则此代码有效。如果我返回多个,我会收到一个错误,例如 ORA-01427,“单行子查询返回多于一行”
我试图将 '=' 更改为 'in' 但我仍然遇到同样的错误!
有任何想法吗?
扩展示例:
WHERE Dop_id = (DECODE ('&prep_flag', 'Yes',
(SELECT Dop_id FROM
( SELECT DOP_id, name FROM TABLE)
WHERE name IS NOT NULL)
, Dop_id))
如前所述,如果选择状态返回行,而不是几个,则此方法有效。