PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Винаги ли трябва да използвате coalesce в WHERE, ако може да има нулеви/празни стойности в колоните, които сравнявате?

Не. Използването на COALESCE() обикновено предотвратява използването на индекси. Еквивалентният синтаксис, използващ булева логика, става тромав.

Най-доброто решение е да използвате IS DISTINCT FROM :

where field1 is distinct from field2

Чрез използването на вградени оператори има по-добра промяна, че Postgres може да оптимизира заявката. IS DISTINCT FROM е стандартен синтаксис ANSI, който е обяснен в документацията .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL LIMIT с клауза WHERE

  2. Получаване на неизвестен първичен ключ за таблица, докато идентификаторът е там

  3. Java SQL ГРЕШКА:Връзка Table_Name не съществува

  4. Има ли някакъв начин да използвате OrmLite с Postgres hstores?

  5. Как да коригирам ГРЕШКА:колона c.relhasoids не съществува в Postgres?