我有一些对我来说几乎具有挑战性,我想根据条件更新列值。
我有一个名为客户的表,其中包含客户名称和电话,我有很多记录,它几乎有40K记录。
电话号码列是字符,记录就像这样'100445216324.0'
但我想以同样的方式更新所有号码:0100445216324
,我在这里删除了{{1}在数字的最后一个,我在它的字体中添加0。
如何在一个简单的更新语句中对所有记录执行此操作。 感谢
答案 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%';