假設我有一個不同值的列(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)
。
假設我有一個不同值的列(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)
。
您可以嘗試從您的一組值中進行選擇,請參閱Oracle Documentation: Object Tables,並使用連接命令。
,如果你想比較一次就可以使用Oracle的減去聲明的所有值:
選擇值
從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功能的逗號分隔值列表轉移到表(而不是使用
選擇...從雙UNION ALL ...
)
你可以閱讀更多關於SYS.DBMS_DEBUG_VC2COLL here。
但我想要那些在(a,b,d,f)中的。 – drum
什麼樣的數據類型是'values',以及'(a,b,c,d,e,f)'是如何在該列中實際表示的? –
數據類型真的很重要嗎?假設他們是varchar。 – drum
是的,因爲我無法分辨您是在討論分隔字符串還是有多個記錄的對象類型。 –