postgresql - 如何将逗号后的3个数字的varchar转换为浮点型PostgreSQL

标签 postgresql

我有一个 varchar 类型,其中每个值看起来像

539,000
153,300
55,300
752,500
4410,000

我需要用数字格式更改列类型

我尝试使用 to_number 但它不起作用

最佳答案

如果您的文本表示是德语十进制值(逗号是小数点分隔符):

demo:db<>fiddle

用点替换逗号并简单地转换为 float :

SELECT replace('123,456', ',', '.')::float

如果逗号分隔千组,您需要使用 G 格式化程序,它描述了这一点:

demo:db<>fiddle

SELECT to_number('123,456', 'FM999G999')

FM 抑制前导空格和零,因此即使更小的数字也可以:

SELECT to_number('56', 'FM999G999')

关于postgresql - 如何将逗号后的3个数字的varchar转换为浮点型PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57609620/

相关文章:

sql - Postgresql 选择常量

java - JDBC语句执行时如何收集警告/通知?

ruby-on-rails - 在 Heroku Rails 4 上设置 PostgresQL

sql - 连接表时 PostgreSQL ON 与 WHERE?

PostgreSQL 在主键上的插入因争用而失败,即使在可序列化级别也是如此

python - ParseError : "ValidateError Field(s) ` arch` failed : Invalid view definition Error details: Model not found: forecast. 报告

java - 尝试为 postgresql 使用 jdbc 驱动程序,但它不起作用

ruby-on-rails - 在代理键存在的情况下,我应该如何为域约束定义复合外键?

postgresql - Erlang 和 PostgreSQL

c# - .net core - 数据库 url 解析器