私はSQLテーブルの電話番号を持っていますが、電話番号が10桁の場合はプレフィックス '0'を追加したい場合は ですが、10未満または10桁を超える場合プレフィクスは必要ありません。電話番号の文字列のプレフィックス0 SQL
7863176061
7724269820
2088076157
1992762084
1318912
出力
07863176061
07724269820
02088076157
01992762084
1318912
私はSQLテーブルの電話番号を持っていますが、電話番号が10桁の場合はプレフィックス '0'を追加したい場合は ですが、10未満または10桁を超える場合プレフィクスは必要ありません。電話番号の文字列のプレフィックス0 SQL
7863176061
7724269820
2088076157
1992762084
1318912
出力
07863176061
07724269820
02088076157
01992762084
1318912
使用CASE
表現してみてください彼の長さ。あなたは、列のデータ型がBIGINTである場合はVARCHARに電話番号の列をキャストする必要があり
クエリ
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];
。それ以外の場合は、上記のクエリでキャスト部分を除外できます。
これを試してみてください:
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 ;
、高速になると思います。あなたは電話番号で数学をしたり、数値比較をしたりしません。つまり、数値列に格納するのではなく、*文字列*として格納する必要があります。必要に応じて、数字だけを含むようにする制約があります。正しいデータ型を使用すると、先行ゼロを格納することが可能になり、電話番号を「修正」するコードを書く必要がなくなります。 –