sql >> Databáze >  >> RDS >> Oracle

Oracle:Rozdíl mezi řetězcem NULL a EMPTY

Problém je v tom, že Oracle (ve výchozím nastavení) považuje prázdné řetězce za NULL . Proto:

where name = ''

je stejný jako:

where name = NULL

a oba vždy selžou (protože vrátí NULL ).

Můžete to opravit různými způsoby. Jedna metoda je:

where (name = INPUT or name is null and INPUT is null)

Nebo, pokud víte, že existuje neplatné jméno:

where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')


  1. MySQL Vyberte konkrétní sloupec

  2. Načítání datového rámce z Pandas do SQL pro ORACLE Yields a ERROR - ORA-00911:Neplatný znak

  3. filtrování výsledků podle dvou vybraných možností

  4. Jak funguje Tanh() v PostgreSQL