问题描述
我试图查询将列中的逗号分隔值划分为不同记录的值,如果该列具有空值,则无法获取值,以下是示例
表名:test
id,name,list
1,a,a1,b1
2,b,null
3,c,c1
使用的查询
select id,unnest(string_to_array(list,',')) from test;
结果:
1,a1
1,b1
3,c1
但是我需要考虑空值并返回如下结果,我尝试使用coalesce但是没有用,请帮助我解决问题
预期结果:
1,c1
解决方法
将 unnest()
与外连接一起使用:
select t.id,t.name,u.element
from test t
left join unnest(string_to_array(t.list,',')) on true
order by t.id;