gpt4 book ai didi

sql - 查询值为空的单行的列名?

转载 作者:行者123 更新时间:2023-11-29 12:51:01 25 4
gpt4 key购买 nike

我正在尝试返回值为空的单行的所有列名。之后我可以解析整行,但很好奇是否有我可以利用的功能。

我可以使用 row_to_json()json_strip_nulls 返回一个包含值为 not null 的键值对的 JSON 对象,其中条件引用 a单个唯一行:

SELECT json_strip_nulls(row_to_json(t))
FROM table t where t.id = 123

是否有一个函数或简单的方法来完成这个过程的逆过程,返回所有具有空值的键(列名)?

最佳答案

您需要一个主键或唯一列。在示例中 id 是唯一的:

with my_table(id, col1, col2, col3) as (
values
(1, 'a', 'b', 'c'),
(2, 'a', null, null),
(3, null, 'b', 'c')
)

select id, array_agg(key) as null_columns
from my_table t
cross join jsonb_each_text(to_jsonb(t))
where value is null
group by id

id | null_columns
----+--------------
2 | {col2,col3}
3 | {col1}
(2 rows)

keyvalue 是函数 jsonb_each_text() 返回的默认列。 请参阅 JSON Functions and Operators在文档中。

关于sql - 查询值为空的单行的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54101250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com