我在sql表中有一個電話號碼,我想添加前綴'0',其中電話號碼是10位數, 但是如果它小於10或大於10位數,則不需要0前綴。電話號碼字符串中的前綴0 SQL
7863176061
7724269820
2088076157
1992762084
1318912
輸出
07863176061
07724269820
02088076157
01992762084
1318912
我在sql表中有一個電話號碼,我想添加前綴'0',其中電話號碼是10位數, 但是如果它小於10或大於10位數,則不需要0前綴。電話號碼字符串中的前綴0 SQL
7863176061
7724269820
2088076157
1992762084
1318912
輸出
07863176061
07724269820
02088076157
01992762084
1318912
使用CASE
表達以檢驗T他的長度。
查詢
select
case when len([phone_number]) = 10
then '0' + cast([phone_number] as varchar(20))
else cast([phone_number] as varchar(20)) end
from [your_table_name];
你必須投中的電話號碼列爲varchar如果列數據類型爲BIGINT。否則,您可以在上述查詢中排除演員角色。
試試這個:
select
case when len(yourcolumn) =10
then '0'+ yourcolumn
else yourcolumn end as column
from yourtable
試試這個
SELECT CASE LEN(Num) WHEN 10 THEN '0'+cast(Num as varchar(11)) ELSE Num END AS Num
我認爲這將是快速,
select
'0' + cast([phone_number] as varchar(20))
from [your_table_name]
where len([phone_number]) = 10 ;
這聽起來像你存儲使用不合適的數據類型的電話號碼。你不會用電話號碼做數學運算,或者進行數字比較。這意味着它們不應該存儲在數字列中,而應該存儲爲*字符串* - 如果您願意,可以使用一個約束來確保它只包含數字。一旦你使用了正確的數據類型,存儲前導零就成爲可能,然後你不必編寫代碼來「糾正」電話號碼。 –