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

时间:2015-03-10 22:45:56

标签: sql postgresql sql-like

我是一名sql-beginner,我很难弄清楚它是怎么回事。 说我有一张简单的表:

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     

可以通过一个简单的查询吗?我的想法是从工会或临时表开始,但我不能让它工作。抱歉这个简单的初学者问题,并提前感谢!

从样本d1中选择d1.column1,d1.column2,d1.column3,其中d1.column1类似'AA%'    联盟       从样本d2中选择d2.column1,d2.column2,d2.column3,其中d2.column2类似'AA%'          联盟             从样本d3中选择d3.column1,d3.column2,d3.column3,其中d3.column3类似'AA%'

3 个答案:

答案 0 :(得分:1)

您可以直接使用OR关键字:

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

答案 1 :(得分:0)

你的联合查询也是正确的bt在简单的情况下我同意或者查询

答案 2 :(得分:0)

对于 PostgreSQL,有 ANY 或 ALL:

WHERE col LIKE ANY( subselect )

WHERE col LIKE ALL( subselect )

其中子选择只返回一列数据。