我有一个包含电话号码的csv文件,其中一些有9位数字,其中一些有10位。是否有一个命令允许对列进行转换,使得只有9位的数字将为0附在数字前面。
例如,
如果列具有值" 443332332"和" 0441223332",我想将9位数字的值更改为" 0443332332"?
对不起,我应该详细说明一下。
我想知道是否有一个命令可以轻松地在SQLlite中执行此操作?我不想使用excel来转换列,就像我可以使用sqllite一样,它会更容易和更快。
答案 0 :(得分:2)
更通用的解决方案是:
select substr('0000000000'||'1234567', -10, 10) from table_name;
上述查询将始终返回10位数,并将前导零添加到错过的位数。
例如,上述查询将返回: 0001234567
对于更新,请使用
UPDATE TABLE_NAME SET PHONE_NO = substr('0000000000'|| PHONE_NO, -10, 10);
答案 1 :(得分:1)
如果您确定在长度为9的字符串上添加零值将适用于您的应用程序,那么简单的操作就可以了:
SELECT CASE WHEN LENGTH(phone_number) = 9 THEN '0'||phone_number
ELSE phone_number
END AS phone_number
FROM your_table
;
您还可以根据需要更新表格:
UPDATE your_table
SET phone_number = '0'||phone_number
WHERE LENGTH(phone_number) = 9
;
答案 2 :(得分:0)
然后按照此处的步骤
http://office.microsoft.com/en-au/excel-help/keep-leading-zeros-in-number-codes-HA010342581.aspx