如何将逗号后带3个数字的varchar强制转换为浮点型PostgreSQL
我有一个varchar类型,其中每个值看起来像如何将逗号后带3个数字的varchar强制转换为浮点型PostgreSQL,postgresql,Postgresql,我有一个varchar类型,其中每个值看起来像 539,000 153,300 55,300 752,500 4410,000 我需要用数字格式更改列类型 我尝试使用数字,但如果您的文本表示为德语十进制值,则该数字不起作用。逗号是十进制分隔符: 将逗号替换为点,并简单地转换为浮点数: SELECT replace('123,456', ',', '.')::float 如果逗号分隔了1000个组,则需要使用G格式化程序,该格式化程序描述了以下内容: FM抑制前导空格和零,所以更小的数字也可以
539,000
153,300
55,300
752,500
4410,000
我需要用数字格式更改列类型
我尝试使用数字,但如果您的文本表示为德语十进制值,则该数字不起作用。逗号是十进制分隔符: 将逗号替换为点,并简单地转换为浮点数:
SELECT replace('123,456', ',', '.')::float
如果逗号分隔了1000个组,则需要使用G格式化程序,该格式化程序描述了以下内容:
FM抑制前导空格和零,所以更小的数字也可以:
SELECT to_number('56', 'FM999G999')
如果文本表示法为德语十进制值,逗号为十进制分隔符: 将逗号替换为点,并简单地转换为浮点数:
SELECT replace('123,456', ',', '.')::float
如果逗号分隔了1000个组,则需要使用G格式化程序,该格式化程序描述了以下内容:
FM抑制前导空格和零,所以更小的数字也可以:
SELECT to_number('56', 'FM999G999')
确保设置了德语数字配置,并使用以下数字:
确保设置了德语数字配置,并使用以下数字:
你可以这样改变 使用replacemy_列“,”和“.”更改列my_列类型float::float
你可以这样改变 使用replacemy_列“,”和“.”更改列my_列类型float::float
我已经使用replaceprice,,,,,,,执行了这个查询alter table orders alter column price type float::float,但我的数字变成了这样的Ehm。。。逗号是千位分隔符还是德文十进制分隔符?@Viktor添加了第二个解决方案,如果逗号是千位分隔符而不是逗号分隔符,我执行了此查询alter table orders alter column price type float using replaceprice,“,”,”::float但我的数字变成了这样的Ehm。。。逗号是千位分隔符还是德国小数点分隔符?@Viktor添加了第二个解决方案,如果逗号是千位分隔符而不是逗号分隔符,请说明在显示的值中,逗号是德国小数点分隔符153300->153.3还是千位分隔符153300->153300请说明显示的值逗号是德国十进制分隔符153300->153.3或千位分隔符153300->153300