给出这两个表: 0 t% U. C" b8 w8 C: B9 V% `CREATE TABLE TEST1 (TEST VARCHAR2(1 BYTE))CREATE TABLE TEST2 (TEST VARCHAR2(1 BYTE))其中,TEST1有两行,其值均为 A”,而TEST2有一行,其值均为 B”。! M) i. W$ e0 R8 |- w
当我操作这个命令时:/ J/ l( y7 ]* T T
SELECT TEST FROM TEST1MINUSSELECT TEST FROM TEST2我得到的输出:3 W4 Z9 \6 L$ | ]% `
Test-----A似乎MINUS因为TEST1中有两个 A”行)。 ; J% P5 A5 H) ~7 o5 u如何获得MINUS查询包含重复值(返回两个A”行)? X" p8 U+ n9 ^& i1 a
) ?$ h, i/ ~* p. L' H0 R i解决方案: ' P- J. G2 }4 O# U; C, ~
Oracle在IN多列支持句子,可以写: 3 o+ H4 o; i2 fSELECT a,b,cFROM table1WHERE (a,b,c) not in select a,b,c from table2)