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

Oracle :pilih nilai maksimum dari kolom yang berbeda dari baris yang sama

Mengingat data pengujian ini ...

SQL> select *
  2  from your_table
  3  /

NAME         M1         M2         M3         M4
---- ---------- ---------- ---------- ----------
A             1          2          3          4
B             6          3          4          5
C             1          5          2          1

SQL>

... panggilan GREATEST() langsung akan memberikan hasil yang diinginkan:

SQL> select name
  2          , greatest(m1, m2, m3, m4) as the greatest_m
  3  from your_table
  4  /

NAME THE_GREATEST_M
---- --------------
A                 4
B                 6
C                 5

SQL>

Perhatikan bahwa greatest() akan mengembalikan NULL jika salah satu argumennya nol. Jika ini masalah, gunakan nvl() untuk memberikan nilai default yang tidak akan mengubah hasil. Misalnya, jika tidak ada nilai yang bisa negatif....

SQL> select name
  2          , greatest(nvl(m1,0), nvl(m2,0), nvl(m3,0), nvl(m4,0)) as the greatest_m
  3  from your_table
  4  /

NAME THE_GREATEST_M
---- --------------
A                 4
B                 6
C                 5

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle - Mengapa nol di depan angka hilang saat mengonversinya TO_CHAR

  2. cara mengekspor data dari tabel log ke badan email di oracle

  3. Kesalahan mencetak variabel REFCURSOR sebagai parameter OUT dalam prosedur di Oracle 11g

  4. SQL (ORACLE):ORDER BY dan LIMIT

  5. Ekspresi Reguler (RegEx) untuk IPv6 Terpisah dari IPv4