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 恰好是一列数据。
我有一个简单的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 恰好是一列数据。