gpt4 book ai didi

sql - 在 postgresql 中将 jsonb 值转换为 varchar

转载 作者:行者123 更新时间:2023-11-29 12:02:58 26 4
gpt4 key购买 nike

我有一个问题

SELECT DISTINCT (value->'Tag') AS tagname 
FROM documents,
jsonb_array_elements(documents.Tags)

所以标记名是一个 jsonb 值。我需要将该标记名转换为 varchar。我该怎么做类型转换?

documents表中Tags列的示例数据为

'[{"Tag":"Web 2.0"},{"Tag":"Adobe Creative"},{"Tag":"Suite"}]'

我正在研究 java jpa。我将 native 查询尝试为

Query query = this.em.createNativeQuery(
"select distinct (value->'Tag')::varchar as tags from documents, jsonb_array_elements(documents.Tags)");

但它显示

Not all named parameters have been set:

最佳答案

无需转换,只需使用 ->> operator返回值作为 text

SELECT DISTINCT value ->> 'Tag' AS tagname 
FROM documents,
jsonb_array_elements(documents.tags);

因为有一天你可能需要一个不同的类型转换:

:: 不是转换值的唯一方式(这也是 JPA 所扼杀的)。您还可以使用标准的 cast() 运算符:

SELECT DISTINCT cast(value -> 'Tag' as varchar) AS tagname 

但是 ->> 运算符在这里是更好的选择。

关于sql - 在 postgresql 中将 jsonb 值转换为 varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46417471/

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