sql >> Database teknologi >  >> RDS >> Oracle

Oracle :vælg maksimal værdi fra forskellige kolonner i samme række

Givet disse testdata ...

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>

... et ligetil GREATEST()-kald vil give det ønskede resultat:

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>

Bemærk at greatest() vil returnere NULL, hvis nogen af ​​argumenterne er nul. Hvis dette er et problem, så brug nvl() for at give en standardværdi, som ikke forvrænger resultatet. For eksempel, hvis ingen værdier kan være negative...

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. Hvordan importerer du en stor MS SQL .sql-fil?

  2. Søg efter "hele ord match" med SQL Server LIKE-mønster

  3. SQL Server Ubrugt Index

  4. Sådan konverteres Unix-epoke til et tidsstempel