You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postgres基于来源列的自定义列:生成无Null的文本匹配结果

问题与解决方案:PostgreSQL多列匹配查询并规整输出

需要从两个表(表A、表B)的三个文本列(A.text1、A.text2、B.text3)中,查询包含%postgres%的内容,要求输出规整的结果集,包含两列:

  • Type:标明匹配内容的来源列
  • Text:匹配到的具体内容

初始方案的问题

最初尝试关联查询的方式,虽然能筛选出符合条件的数据,但结果里存在大量null值,格式不符合要求:

select a.text1, a.text2, b.text3
from a
inner join b
on a.id = b.aId
where a.text1 like '%postgres%'
or a.text2 like '%postgres%'
or b.text3 like '%postgres%'

最终可行方案

通过UNION ALL子查询拆分各列数据,再统一过滤匹配条件,实现了无null值的规整输出:

select * from
(select 'text1' as type, text1 as text from a
union all
select 'text2' as type, text2 as text from a
union all
select 'text3' as type, text3 as text from b) as result
where result.text like '%postgres%'

内容的提问来源于stack exchange,提问作者Timo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:50:12