sql >> Database >  >> RDS >> PostgreSQL

Moet u altijd samenvoegen gebruiken in een WAAR als er null/lege waarden kunnen zijn in de kolommen die u vergelijkt?

Nee. Het gebruik van COALESCE() verhindert over het algemeen dat indexen worden gebruikt. De equivalente syntaxis die booleaanse logica gebruikt, wordt omslachtig.

De beste oplossing is om IS DISTINCT FROM . te gebruiken :

where field1 is distinct from field2

Door ingebouwde operators te gebruiken, is er een betere kans dat Postgres de query kan optimaliseren. IS DISTINCT FROM is ANSI-standaardsyntaxis die wordt uitgelegd in de documentatie .



  1. Len() versus datalength() in SQL Server 2005

  2. SQL/Oracle:wanneer indexen op meerdere kolommen kunnen worden gebruikt

  3. Hoe de externe sleutels van een tabel uit andere tabellen te vullen

  4. Oracle exporteert SQL van de databasestructuur