如果你需要知道什麼IN
子句中列出的項目沒有在表中找到匹配,你可以採取用戶的優勢定義的或內置的集合 - 嵌套表或變量數組。下面的示例使用內置集合sys.odcinumberlist()
元素就是數數據類型:
/*sample of data */
with t1(col) as(
select level
from dual
connect by level <= 11
)
select s.column_value as missing_val
from t1 /* here you list the elements as you would using IN clause*/
right join table(sys.odcinumberlist(1,2,3,4,5,6,7,8,9,10, 70)) s
on (t1.col = s.column_value)
where t1.col is null
結果:
MISSING_VAL
------------
70
如果你的列表中的元素是varchar
數據類型,則OdciVarchar2List()
集合可以是對date
數據類型的元素使用或ODCIDateList()
。您還可以自由創建自己的SQL類型集合。例如:
create or replace type T_Type_Name is table of number
使用'NOT IN(..)'... –