用于spesifc字符串的Postgres-update char列

时间:2016-03-06 15:59:50

标签: database postgresql

我有一些对我来说几乎具有挑战性,我想根据条件更新列值。

我有一个名为客户的表,其中包含客户名称和电话,我有很多记录,它几乎有40K记录。 电话号码列是字符,记录就像这样'100445216324.0'但我想以同样的方式更新所有号码:0100445216324,我在这里删除了{{1}在数字的最后一个,我在它的字体中添加0。

如何在一个简单的更新语句中对所有记录执行此操作。 感谢

2 个答案:

答案 0 :(得分:1)

UPDATE my_table
SET tel = '0' || left(tel, -2)
WHERE right(tel, 2) = '.0';

这仅更新以' .0'。

结尾的电话号码

答案 1 :(得分:1)

就个人而言,我会更熟悉一个更通用的解决方案,即在这段时间之前取出所有内容并添加一个前导零。 。 。如果有一段时间:

update t
    set tel = '0' || left(tel, position('.' in tel) - 1)
    where tel like '%.%';

where检查是否仅对具有问题中建议格式的行进行更改。

如果您想坚持所有数字都以零开头,那么您可能希望这样做:

update t
    set tel = '0' || tel
    where tel not like '0%';