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

Oracle :wybierz maksymalną wartość z różnych kolumn tego samego wiersza

Biorąc pod uwagę te dane testowe ...

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>

... proste wywołanie GREATEST() da pożądany wynik:

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>

Zauważ, że greatest() zwróci NULL, jeśli którykolwiek z argumentów ma wartość NULL. Jeśli jest to problem, użyj nvl() aby podać wartość domyślną, która nie zniekształci wyniku. Na przykład, jeśli żadna wartość nie może być ujemna...

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. Sortuj według dnia tygodnia od poniedziałku do niedzieli

  2. Wyrocznia:LONG czy CLOB?

  3. Wielkie litery w nazwiskach osób w programowaniu

  4. Funkcja NLS_UPPER() w Oracle

  5. Koszt Oracle In-Memo