小编Ger*_*ila的帖子

将列从 varchar 更新为 jsonb

我正在尝试将 varchar 类型列中的列更新为 JSON,但该列已填充​​为数字、字符串或哈希的字符。

我怎样才能将它们转换为接下来的 JSONTO_JSON

我试过的

ALTER TABLE data_copy1 ADD COLUMN data2 jsonb;
UPDATE data_copy1 set data2= to_json(data);
ALTER TABLE data_copy1 DROP COLUMN data;
ALTER TABLE data_copy1 RENAME COLUMN data2 TO data;
Run Code Online (Sandbox Code Playgroud)

结果返回:

“39.9”
“32.2”
“Paso 5”
"{\"cam_in\": 0.6, \"cam_out\": 0.6}”
Run Code Online (Sandbox Code Playgroud)

该数值也被视为字符串,我希望他们进入integerfloat等等。并且我期待同列是这样的:

39.9 
32.2
“paso 5 ”
"{\"cam_in\": 0.6, \"cam_out\": 0.6}” 
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用 when 语句和 SQL 的 try and catch 。这是一个 sql fiddle 来显示我的问题http://sqlfiddle.com/#!17/7073d/2

sql postgresql

6
推荐指数
2
解决办法
5586
查看次数

标签 统计

postgresql ×1

sql ×1