gpt4 book ai didi

sql - Integer 和 JSONB 之间的 PostgreSQL UNION 得到错误 : UNION types integer and jsonb cannot be matched

转载 作者:行者123 更新时间:2023-11-29 14:15:33 27 4
gpt4 key购买 nike

我想使用 UNION ALL 运算符将 2 个表合并为一个表。第一个表有几个字段。第二个表将几个字段分组到 JSONB 字段上。

为了简化问题,我使用这个简单的 SQL 请求(不依赖于表)重现了错误:

SELECT 10 as price  
UNION ALL
SELECT '{"price":2}'::jsonb->'price' as price;

此请求返回以下错误:

ERROR:  UNION types integer and jsonb cannot be matched
LINE 3: SELECT '{"price":2}'::jsonb->'price' as price;

如何使用 UNION ALL 运算符将整数与 JSONB 整数属性合并?

我想得到以下输出:

 price
-------
10
2
(2 rows)

最佳答案

JSON 看起来很简单,但在处理类型时会变得有点复杂。你想提取元素作为一个值;然后,您可以转换为整数。因此:

SELECT 10 as price  
UNION ALL
SELECT ('{"price":2}'::jsonb->>'price')::int as price

关于sql - Integer 和 JSONB 之间的 PostgreSQL UNION 得到错误 : UNION types integer and jsonb cannot be matched,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49404869/

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