sql >> Database >  >> RDS >> PostgreSQL

Waarom werkt het anders met ~~ any()?

Het probleem is dat het resultaat van uw subquery wordt geïnterpreteerd als een string, niet als een array. Dit komt omdat deze twee vormen semantisch verschillend zijn:

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

en

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

U kunt dus gewoon schrijven:

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



  1. Grails:wijs mysql-veld van het type enum toe aan domeinklasse

  2. UNION de resultaten van meerdere opgeslagen procedures

  3. Hoe PHP-testserver instellen in Dreamweaver?

  4. Oracle SQL:functie CHR() gebruiken met || samenvoegen