PostgreSQL:查找与 like 子句匹配的多个列

PostgreSQL: finding multiple columns that match a like clause

我有一个简单的table:

column 1               column2               column3
 AA                     AAAA                    TT                
 AA                     BB                      EE
 AB                     C                       AABBCC 
 ABC                    XXX                     XYZ 
 AABB                   YYY                      A

现在我试图找到匹配的所有列,例如'AA%' 结果:

column 1               column2               column3
 **AA**                **AAAA**                null                 
**AA**                  null                   null    
 null                   null                  *AABBCC* 
 null                   null                   null        
 **AABB**               null                   null     

是否可以通过一个简单的查询来实现?我的想法是从 unions 或 temporay tables 开始,但我无法让它工作。很抱歉这个简单的初学者问题,在此先感谢!

select d1.column1, d1.column2, d1.column3 from sample d1 where d1.column1 like 'AA%' 
   union 
      select d2.column1, d2.column2, d2.column3 from sample d2 where d2.column2 like 'AA%' 
         union 
            select d3.column1, d3.column2, d3.column3 from sample d3 where d3.column3 like 'AA%' 

您可以像这样使用 OR 关键字:

SELECT column1, column2, column3 
FROM sample 
WHERE column1 like 'AA%' 
OR column2 like 'AA%' 
OR column3 like 'AA%'

你的联合查询也是正确的 bt 为了简单我同意或者查询

对于 PostgreSQL,有 ANY 或 ALL:

WHERE col LIKE ANY( subselect )

WHERE col LIKE ALL( subselect )

其中子选择 returns 恰好是一列数据。