Oracle
 sql >> Base de données >  >> RDS >> Oracle

Empêcher l'instruction Oracle moins de supprimer les doublons

Autre possibilité :

SELECT TEST, row_number() OVER (PARTITION BY TEST ORDER BY TEST) FROM TEST1
MINUS
SELECT TEST, row_number() OVER (PARTITION BY TEST ORDER BY TEST) FROM TEST2

Ce serait MOINS avec chaque doublon traité comme une entrée distincte. Notez dans l'exemple ci-dessous, si TEST1 a deux valeurs 'C' et TEST2 n'en a qu'une, vous en obtenez une dans la sortie.

dev> select * from test1;

T
-
A
A
B
C
C

dev> select * from test2;

T
-
B
C

dev>     SELECT TEST, row_number() OVER (PARTITION BY TEST ORDER BY TEST) FROM TEST1
  2      MINUS
  3      SELECT TEST, row_number() OVER (PARTITION BY TEST ORDER BY TEST) FROM TEST2
  4  /

T ROW_NUMBER()OVER(PARTITIONBYTESTORDERBYTEST)
- --------------------------------------------
A                                            1
A                                            2
C                                            2