尝试取消嵌套 Text[] 类型的列正在跳过为空的列 - Postgres
Posted
技术标签:
【中文标题】尝试取消嵌套 Text[] 类型的列正在跳过为空的列 - Postgres【英文标题】:Trying to unnest a column of type Text[] is skipping the columns that are null - Postgres 【发布时间】:2021-08-22 16:25:30 【问题描述】:想象一个如下所示的表格:
name | reloptions
-----------------------
testname | val1, val2
nullSample | null
如果我运行这样的查询:
SELECT *
FROM table, UNNEST(reloptions) AS reloption
我只得到:
name | reloption
------------------
testname | val1
testname | val2
我需要结果集仍然包含具有空值的行:
name | reloption
------------------
testname | val1
testname | val2
nullSample | null
提前感谢任何帮助
【问题讨论】:
【参考方案1】:您可以使用coalesce()
将NULL
值替换为具有一个元素NULL
的数组。
SELECT *
FROM elbat AS t
CROSS JOIN LATERAL unnest(coalesce(t.reloptions, 'null'::text[])) AS ro
(ro);
db<>fiddle
【讨论】:
【参考方案2】:使用left join
:
SELECT *
FROM table t LEFT JOIN LATERAL
UNNEST(t.reloptions) AS reloption
ON 1=1;
【讨论】:
以上是关于尝试取消嵌套 Text[] 类型的列正在跳过为空的列 - Postgres的主要内容,如果未能解决你的问题,请参考以下文章
Dokka - 跳过为默认的 android 包生成 javadoc
如何使用 System.Text.Json 处理可为空的引用类型?