sql >> Databasteknik >  >> RDS >> Oracle

Oracle:Skillnaden mellan NULL och EMPTY sträng

Problemet är att Oracle (som standard) behandlar tomma strängar som NULL . Därför:

where name = ''

är detsamma som:

where name = NULL

och båda misslyckas alltid (eftersom de returnerar NULL ).

Du kan fixa detta på olika sätt. En metod är:

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

Eller, om du vet att det finns ett ogiltigt namn:

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


  1. Subtrahera 30 år från aktuellt datum i Oracle SQL

  2. pyodbc kan inte ansluta till databasen

  3. Avancerad SQL Query Design Hjälp (Duplicerar över två tabeller, flera fält, möjliga undantag baserat på ett fält)

  4. Skala anslutningar i PostgreSQL med Connection Pooling