在 PostgreSql 中修剪所有出现的字符

问题描述

我正在尝试从属性 salary 的值中删除所有零。 我正在使用 TRIM 函数(通过将 salary 类型转换为 TEXT)。 TRIM 函数不会删除介于两者之间的 0,例如,如果我在 809800 上使用它,结果是 '8098'。中间的 '0' 仍然存在。 这是我在做什么:

PostgreSql

提前致谢。

解决方法

为此使用 replace()

demo:db<>fiddle

SELECT replace('01000200330004000','0','')

或用于您的 salary 列:

SELECT replace(salary,'')
,

您也可以使用 translate()

select translate(salary,'')

对于一个字符,这就像replace()。但是,这可以更好地推广到多个字符。您可以只列出字符而不是嵌套对 replace() 的调用。