PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Müssen Sie immer Coalesce in einem WHERE verwenden, wenn in den zu vergleichenden Spalten Null-/Leerwerte vorhanden sein können?

Nein. Die Verwendung von COALESCE() verhindert generell die Verwendung von Indizes. Die äquivalente Syntax mit boolescher Logik wird umständlich.

Die beste Lösung ist die Verwendung von IS DISTINCT FROM :

where field1 is distinct from field2

Durch die Verwendung integrierter Operatoren gibt es eine bessere Änderung, dass Postgres die Abfrage optimieren kann. IS DISTINCT FROM ist eine ANSI-Standardsyntax, die in der Dokumentation erläutert wird .