0
當確認轉向存儲過程不會使其預期功能(A點的數據到達B點)停止工作時,我經常使用MINUS
(EXCEPT
在sql server中)。然而,這迫使我跑兩次每個查詢(因爲減去返回存在於第一/頂級表沒有在第二/底部存在行):替換兩個MINUS/EXCEPT查詢
SELECT value1, value2, value3 FROM table1 WHERE uploadID = 'beforeTurning'
MINUS
SELECT value1, value2, value3 FROM table1 WHERE uploadID = 'afterTurning';
SELECT value1, value2, value3 FROM table1 WHERE uploadID = 'afterTurning'
MINUS
SELECT value1, value2, value3 FROM table1 WHERE uploadID = 'beforeTruning';
我能做到用一個同樣的事情查詢?我會怎麼做?
您的查詢甚至不排除任何東西,因爲在第一個查詢值和第二永諾將至少通過(在第一部分「beforeTunning」,並在第二個「afterTunning」)領域UPLOADID不同。所以,沒有任何東西會被排除在第一個查詢之外。 – Mikhail
@Mikhail我會更新我的例子:) – Zzz
那麼就使用NOT EXISTS :)類似的東西'SELECT value1,value2,value3 FROM table1 t1 WHERE uploadID ='beforeTunning'AND NOT EXISTS(SELECT * FROM table1 t2 WHERE t1。 value1 = t2.value1 AND t1.value2 = t2.value2 AND t1.value3 = t2.value3 AND t2.uploadID ='afterTunning')UNION SELECT value1,value2,value3 FROM table1 t1 WHERE uploadID ='afterTunning'AND NOT EXISTS( SELECT * FROM table1 t2 WHERE t1.value1 = t2.value1 AND t1.value2 = t2.value2 AND t1.value3 = t2.value3 AND t2.uploadID ='beforeTunning')' – Mikhail