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

SQL Wybór wartości MIN z danych wiersza z wartościami null

Wygląda na to, że chcesz czegoś takiego

SELECT least( (case when col1 is null or col1 = 0 then 999999999 else col1 end),
              (case when col2 is null or col2 = 0 then 999999999 else col2 end),
              (case when col3 is null or col3 = 0 then 999999999 else col3 end) )
  FROM <<table name>>

gdzie 999999999 to pewna wartość liczbowa, która jest na tyle duża, że ​​zawsze będzie większa niż jakakolwiek inna prawidłowa wartość. Jeśli jest możliwe, że wszystkie trzy kolumny będą miały NULL lub 0 wartości, to prawdopodobnie chciałbyś dodać dodatkowe sprawdzenie, czy wynik tego least funkcja to 999999999, że zwracasz 0 lub NULL lub cokolwiek innego ma sens.

@X-Zero był na tyle miły, że stworzył działający przykład SQL Fiddle tej konstrukcji. Zauważ, że jego przykład filtruje wiersze, w których wszystkie trzy kolumny mają albo NULL lub 0 wartości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak pobrać dane z jednej kolumny z jednej tabeli do innej tabeli jako różne kolumny w PL/SQL?

  2. dbms_output.put nie drukuje danych

  3. Instalowanie 32-bitowego klienta Oracle na serwerze Windows, na którym już działa 64-bitowy serwer bazy danych Oracle

  4. sql - pojedyncze zapytanie zwracające wartości, których nie ma

  5. PreparedStatement pomyślnie wykonany w Oracle, ale zgłaszający wyjątek w Microsoft SQL