Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bergabung dengan tabel ke dirinya sendiri di Oracle

Selalu sederhanakan, gunakan semua fitur bawaan Oracle yang tersedia.

SELECT * FROM
(     
 SELECT FORMAT_NO, FORMAT_CODE, SEQ
  , (CASE WHEN FORMAT_CODE = 'O' THEN LAG(seq, 1, 0) OVER (ORDER BY FORMAT_CODE) END) nn_seq
FROM 
(                           
SELECT 1000 PRODUCT_NO, 1111 FORMAT_NO, 'P' FORMAT_CODE, 0 SEQ FROM dual
UNION
SELECT 1000, 1112, 'O', 0 FROM dual
UNION
SELECT 1000, 1113, 'H', 546 FROM dual
)
ORDER BY 2
)
WHERE FORMAT_CODE = 'O'

/

Keluaran:1112 O 0 546

Dalam query di atas Anda perlu melakukan pemesanan terlebih dahulu kemudian menggunakan Oracle bawaan LAG() atau LEAD() tergantung pada pesanan dan output yang diinginkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh String dan Angka Oracle Concatenate

  2. Oracle - menggunakan variabel bind dalam klausa LIKE dari kursor dinamis

  3. Mengapa saya dapat menggunakan karakter yang bukan bagian dari rangkaian karakter (windows-1252)?

  4. Apakah ada cara untuk membuat ulang paket ODI menggunakan Skenario ODI?

  5. Mengapa NVL selalu mengevaluasi parameter ke-2