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

Защо работи различно с ~~ any()?

Проблемът е, че резултатът от вашата подзаявка се интерпретира като низ, а не като масив. Това е така, защото тези две форми са семантично различни:

~~ ANY ('...')  -- will be interpreted as an array literal

и

~~ ANY (SELECT ...)  -- will compare with all query results in turn

Така че можете просто да напишете:

WHERE lower(name) ~~ ANY
      (SELECT DISTINCT '%' || lower(brand) || '%'
       FROM my_table
       WHERE source = 'Orig')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sqlalchemy и автоматични увеличения с postgresql

  2. Грешка при опит за свързване на R към PostgreSQL чрез RODBC

  3. Как да изберете от променлива, която е име на таблица n Postgre>=9.2

  4. Индекс на клеймото за време:Функциите в индексния израз трябва да бъдат маркирани като НЕИЗМЕНЯЕМИ

  5. SQL:Контролиране на броя върнати записи