PostgreSQL |从 jsonb 中提取值并更改其类型

问题描述 投票:0回答:1

我有一个包含多个表中的列的视图,其中一个列是根据另一个表中 jsonb 中的值创建的:

CREATE VIEW my_view AS
SELECT table_1.id AS id, table_2.name AS name,
table_3.metadata::json->>'total_count' AS count
FROM table_1
LEFT JOIN table_2 ON ...

现在我可以像这样完美地从 jsonb 中提取值,没有任何问题,但问题是在

count
中创建的列
my_view
是文本类型(因为它是从 json 中提取的),但我希望它是数字类型,有什么办法可以做到这一点吗?提取并更改提取值的类型?

我尝试通过更改视图来更改类型,但我发现我们不能在 postgres 中做到这一点,所以我唯一的解决方案是在提取它时更改类型。

postgresql view jsonb
1个回答
0
投票

您已经在使用

::
转换语法。如果您将提取内容放在括号中,则可以再次使用它来将结果
text
更改为
numeric

更改视图定义是通过

create or replace
:

完成的
CREATE OR REPLACE VIEW my_view AS
SELECT table_1.id AS id, table_2.name AS name,
(table_3.metadata::json->>'total_count')::numeric AS count
FROM table_1
LEFT JOIN table_2 ON ...
© www.soinside.com 2019 - 2024. All rights reserved.