Postgresql数据库操作

修改Jsonb中某个键值 例如 如果为 1 则修改成男 0则为女

UPDATE "large_screen"."overall_statistics"
SET statistics_data = 
  CASE  
		 WHEN statistics_data->>'fault_type' = '故障' THEN jsonb_set(statistics_data, '{fault_type}', '"fault"')
		 WHEN statistics_data->>'fault_type' = '正常运行' THEN jsonb_set(statistics_data, '{fault_type}', '"normalOperation"')
     ELSE statistics_data
  END
WHERE 
  (statistics_data->>'fault_type' IN ('正常运行', '故障') OR (statistics_data->>'fault_type' IS NULL AND statistics_count = 0))
  AND jsonb_typeof(statistics_data) = 'object' and statistics_type = 'offline'

两表 将副表某些字段改成JsonB字段另起一列

// attributes就是新生成的字段,
// attribute_kv 表中的attribute_key和long_v字段变成 {"state": 2, "online": 1}

SELECT
    dev.id,
    jsonb_object_agg(att.attribute_key, att.long_v) AS attributes
FROM
    "public".device dev
LEFT JOIN
    "public".attribute_kv att ON dev."id" = att.entity_id 
WHERE
    att.attribute_key IN ('state','online' )
GROUP BY
    dev.id;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值