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

Czy istnieje lepszy operator Oracle do sprawdzania równości bezpieczny dla wartości null?

Cóż, nie jestem pewien, czy tak jest lepiej , ale nieco bardziej zwięzłe może być użycie LNNVL , funkcja (której można używać tylko w WHERE klauzula), która zwraca TRUE jeśli dane wyrażenie to FALSE lub NIEZNANE (NULL ). Na przykład...

WITH T AS
(
    SELECT    1 AS X,    1 AS Y FROM DUAL UNION ALL
    SELECT    1 AS X,    2 AS Y FROM DUAL UNION ALL
    SELECT    1 AS X, NULL AS Y FROM DUAL UNION ALL
    SELECT NULL AS X,    1 AS Y FROM DUAL
)
SELECT
    *
FROM
    T
WHERE
    LNNVL(X <> Y);

...zwróci wszystko oprócz wiersza, w którym X =1 i Y =2.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uciekający znak ampersand w ciągu SQL

  2. Oracle wstawia się do tabeli 2, a następnie usuwa z tabeli 1, wyjątek w przypadku niepowodzenia

  3. Wartości nie są wyświetlane z wiodącym zerem w Oracle

  4. Narzędzie:generuj procedurę PL/SQL do eksportu danych z tabeli w 2 minuty

  5. Drukowanie wartości zmiennej w SQL Developer