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

Menangani Null dalam fungsi Terbesar di Oracle

Pertanyaan Anda secara khusus melibatkan dua kolom, tetapi saya mengalami situasi di mana saya membutuhkan GREATEST /LEAST lebih dari dua kolom. Dalam skenario tersebut, Anda dapat menggunakan COALESCE dan perluas solusi ke kolom sebanyak yang Anda inginkan.

Berikut adalah contoh dengan tiga kolom a , b , dan c :

GREATEST(
    COALESCE(a, b, c),
    COALESCE(b, c, a),
    COALESCE(c, a, b)
)

Perhatikan bahwa urutan kolom COALESCE berubah sehingga setiap kolom input adalah elemen pertama COALESCE setidaknya sekali. Satu-satunya saat ini akan mengembalikan NULL adalah ketika semua kolom input adalah NULL.

Dalam "solusi umum" jumlah COALESCE pernyataan akan sama dengan jumlah kolom input:

GREATEST(
    COALESCE(col1, col2, col3, col4, ....),
    COALESCE(col2, col3, col4, ...., col1),
    COALESCE(col3, col4, ...., col1, col2),
    COALESCE(col4, ...., col1, col2, col3),
    COALESCE(...., col1, col2, col3, col4),
    ...
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. karakter arab di database oracle

  2. Pengumpulan Koneksi Oracle di .Net

  3. Kueri dua tabel dari skema yang berbeda

  4. Kembalikan tabel dalam fungsi PL/SQL

  5. Permintaan untuk menemukan pemindaian tabel lengkap di Oracle