Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zapobiegaj usuwaniu duplikatów instrukcji Oracle minus

Inna opcja:

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

Będzie to MINUS, a każdy duplikat będzie traktowany jako odrębny wpis. Zauważ w poniższym przykładzie, że jeśli TEST1 ma dwie wartości „C”, a TEST2 ma tylko jedną, otrzymasz jedną na wyjściu.

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. Maksimum średnich

  2. wybieranie rekordu z wyroczni

  3. Jak używać Timestamp_to_scn i Scn_to_timestamp w Oracle?

  4. EM12c umożliwia teraz DB12c dla repozytoriów

  5. Oracle APEX — Tabela przeglądowa z kilkoma łączami