Oracle
 sql >> база данни >  >> RDS >> Oracle

Предотвратяване на Oracle minus израз от премахване на дубликати

Друг вариант:

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

Това ще бъде МИНУС, като всеки дубликат се третира като отделен запис. Забележете в примера по-долу, че ако TEST1 има две стойности „C“, а TEST2 има само една, вие получавате една в изхода.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхраняване на множество стойности за едно поле в база данни

  2. Oracle:10g oracle клиент работи ли с 11g сървър?

  3. Не е валиден месец при вмъкване на данни в oracle

  4. зависещо от часовата зона системно клеймо и сравнение на времеви клеймо на Oracle

  5. Crystal report не успя да извлече данни от базата данни