我正在尝试将 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)
该数值也被视为字符串,我希望他们进入integer,float等等。并且我期待同列是这样的:
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