2011-05-04 44 views
0

我有一個表d(COL1,姓名,COL3 ...科隆)和XMLFILE,我需要從XML只選擇名稱,即不要存在於DB:如何使用現有表中的數據過濾XMLTABLE?

Select t.nam 
From XMLTABLE('/Документ/План/СтрокиПлана/Строка' 
PASSING xml COLUMNS nam Varchar2(256) PATH '@Дис') t 
    ,disciplines_ d 
Where d.Name != t.nam; 

但輸出結果顯示的東西,貌似

Select * 
From table_1 
    ,table_2 

回答

1

,你可以嘗試以下方法:

Select t.nam 
    From XMLTABLE('/Документ/План/СтрокиПлана/Строка' 
     PASSING xml COLUMNS nam Varchar2(256) PATH '@Дис') t 
where t.nam NOT IN (SELECT d.name 
         FROM disciplines_ d 
         WHERE d.name IS NOT NULL) 
+0

TNX這個想法,它的工作原理是我所需要的。但無論如何,有點奇怪,你不能只輸入!= b。 – BeHunter 2011-05-04 08:47:07

+0

@behunter:你的連接子句將匹配A中的每一行到B中所有不同的行,這將有效地返回與cartesion連接AxB幾乎相同的行數 – 2011-05-04 10:43:33