假设我有一个具有不同值(a,b,c,d,e,f) as values
的列。
在PL / SQL中,如何将此列与一组进行比较,例如(a,b,d,f)
并输出指示符?
我的方法是:
select case
when values in (a,b,d,f) then 'yes'
else 'no'
end
但是,此方法一次只取一个值,并检查它是否在(a,b,d,f)
。
答案 0 :(得分:0)
如果你想一次比较所有值,你可以使用oracle' s minus语句:
选择值
从your_table减去 (select 'a' from dual union all select 'b' from dual union all select 'd' from dual union all select 'f' from dual
)
这将从your_table中检索不在(a,b,d,f)中的所有值。
您还可以使用SYS.DBMS_DEBUG_VC2COLL函数将逗号分隔的值列表传输到表中(而不是使用
从双联盟中选择... ...
)
您可以阅读有关SYS.DBMS_DEBUG_VC2COLL here的更多信息。
答案 1 :(得分:-1)
您可以尝试从您的一组值中进行选择,请参阅Oracle Documentation: Object Tables,然后使用join命令。