gpt4 book ai didi

c# - PostgreSQL:JSON 中的计算字段

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

有没有办法计算 JSON 中的字段。这是我的表的设置方式:

CREATE TABLE test1
(
id int not null,
data JSONB
)

这是我要插入的文件

{
'name': "test name",
'age': 46,
'heartrate': 211,
'heartrateminuseage': function(){ return this.heartrate - this.age; }
}

我怎样才能使这样的东西起作用?

最佳答案

假设您有如下数据:

CREATE TABLE test1(id INT NOT NULL, data JSONB);

INSERT INTO test1(id, data)
VALUES (1,'{"name": "test name",
"age": 46,
"heartrate": 211}'),
(2,'{"name": "test name2",
"age": 50,
"heartrate": 200,
"heartrateminuseage": 1000}');

要计算"heartrateminuseage",您可以先使用提取值并使用jsonb_set 进行设置:

SELECT id, data
,jsonb_set(data,'{"heartrateminuseage"}',
to_jsonb((data->>'heartrate')::int - (data ->>'age')::int),
true) AS data_2
FROM test1;

输出:

enter image description here

对于计算列:

  1. 创建 View
  CREATE VIEW wv_test1  AS    SELECT id      ,jsonb_set(data,'{"heartrateminuseage"}',                 to_jsonb((data->>'heartrate')::int - (data ->>'age')::int),                 true) AS data    FROM test1;  
  1. 创建一个触发器来更新列
  2. 创建一个函数

更多信息: Computed / calculated columns in PostgreSQL Store common query as column?

关于c# - PostgreSQL:JSON 中的计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36429528/

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