我正在尝试使用此命令将字符串转换为小数:
SELECT cast(minimum_ticket_price AS DECIMAL(6,2)
FROM all_event_details
WHERE minimum_ticket_price ~ E'^\\d+$';
但这实际上并没有更新我的数据库中的任何内容。它只显示终端中的选定列。我是否需要将选择与更新结合起来?我已经尝试过,但我必须使用语法错误,因为我无法将转换保存在数据库中。
这是我试过的:
UPDATE all_event_details
SET minimum_ticket_price = cast(minimum_ticket_price AS DECIMAL(6,2))
WHERE ( minimum_ticket_price <> '') IS TRUE;;
答案 0 :(得分:0)
更新为minimum_ticket_price列的数据可以支持的数据类型是可能的,否则会出错。 例如,如果minimum_ticket_price列数据类型是varchar,则代码必须正常工作。
答案 1 :(得分:0)
ALTER TABLE my_table ADD COLUMN minimum_ticket_priceR real ;
大于
UPDATE all_event_details
SET minimum_ticket_priceR = to_number(coalesce(minimum_ticket_price,"0"),"999999D99") --for each row
比我打算删除colum minimum_ticket_price并重命名另一列(使用ALTER TABLE): 你做的是不明白,如果minimum_ticket_price是字符串,你不能设置一个数字......如果是一个数字没有意义将其设置为字符串