Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Postgres更新spesifc字符串的字符列_Database_Postgresql - Fatal编程技术网

Database Postgres更新spesifc字符串的字符列

Database Postgres更新spesifc字符串的字符列,database,postgresql,Database,Postgresql,我想根据条件更新列的值,这对我来说几乎是一个挑战 我有一个名为customers的表,其中包含客户姓名和电话,我有很多记录,几乎有40K条记录。 电话号码列是char,记录如下所示'100445216324.0',但我想用相同的方式将所有号码更新为:0100445216324,我在这里做的是删除号码最后的'.0',并在其字体中添加0 如何在一个简单的update语句中对所有记录执行此操作。 谢谢 这仅更新以“.0”结尾的电话号码 这只会更新以“.0”结尾的电话号码。就我个人而言,我更喜欢一个更通

我想根据条件更新列的值,这对我来说几乎是一个挑战

我有一个名为customers的表,其中包含客户姓名和电话,我有很多记录,几乎有40K条记录。 电话号码列是char,记录如下所示
'100445216324.0'
,但我想用相同的方式将所有号码更新为:
0100445216324
,我在这里做的是删除号码最后的
'.0'
,并在其字体中添加0

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

这仅更新以“.0”结尾的电话号码


这只会更新以“.0”结尾的电话号码。

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

update t
    set tel = '0' || left(tel, position('.' in tel) - 1)
    where tel like '%.%';
其中
检查是否仅对具有问题中建议的格式的行进行了更改

如果要坚持所有数字都以零开头,则可能需要执行以下操作:

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

就我个人而言,我会更喜欢一个更普遍的解决方案,在这段时间之前处理所有问题,并添加一个前导零。如果有一段时间:

update t
    set tel = '0' || left(tel, position('.' in tel) - 1)
    where tel like '%.%';
其中
检查是否仅对具有问题中建议的格式的行进行了更改

如果要坚持所有数字都以零开头,则可能需要执行以下操作:

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

总是0吗?如果不是,它总是在点后1个字符吗?它总是0吗?如果不是,它总是在点后加1个字符吗?只有当它总是在点后加1个数字时才有效。@sagi这正是OP演示的内容。我知道,但这并不意味着他需要:)有一个以“.0”结尾的数字,而不是,,,,,所以必须先添加条件来检查电话号码查看更新的答案。现在,该语句只更新以“.0”结尾的电话号码。只有在它总是以点后的1个号码结尾时才有效。@sagi这正是OP演示的内容。我知道,但这并不意味着他需要:)有一个以“.0”结尾的号码,而不是,,,因此,您必须先添加条件以检查电话号码,然后才能看到更新的答案。现在,该语句只更新以“.0”结尾的电话号码。第一个语句将检查以“.0”结尾的号码,并将其删除,然后在此号码前面添加0?@MostafaMohamed。第一个版本检查任何有句点的
tel
,并删除句点后的所有内容。第一个版本将检查以“.0”结尾的数字并删除它,然后在此数字前面添加0?@MostafaMohamed。第一个版本检查任何有句点的
tel
,并删除句点后的所有内容。