T-SQLで電話番号を書き換える方法は?
-
03-07-2019 - |
質問
T-SQLに初心者の質問があります。
ExcelシートをSQL Server 2008にインポートしました。これらのExcelファイルは、本来の形式にフォーマットされていませんでした。電話番号は、「012345678」のようになります。先頭と末尾に空白がなく、内部に空白がありません。さらに悪いことに、数字は接頭辞「0123-2349823」または「0123/2349823」でエンコードされます。
通常、Excelファイルを CSV ファイルにエクスポートしてから、クリーニングを実行してからExcelファイルを再インポートするマジックPerlスクリプト。
それでも、T-SQLでこのようなことを行う方法を知ることは興味深いでしょう。
アイデアはありますか
解決
次のようなもの
replace(replace(rtrim(ltrim('0123-2349823')), '-', ''), '/', '')
動作するはずです。きれいに見えません。 ;)
他のヒント
私はそれを更新して、SQLの 'Replace'およびLTrim / RTrim関数を使用します。
Update Table1
set phonenum = Case
When phonenum like '%-%' Then LTrim(RTrim(Replace(phonenum, '-', '')))
Else LTrim(RTrim(Replace(phonenum, '/', '')))
End
"クリーニング済み"数値のみが含まれています
電話番号に"-"、" /"が含まれているかどうかに応じて、それらを空の文字列に置き換えます。
create table #t ( tel varchar(30) )
insert #t select '0123-2349823'
insert #t select '0123/2349823'
select tel,
replace(tel,
case
when patindex('%-%', tel) > 0 then '-'
when patindex('%/%', tel) > 0 then '/'
end, '') as Cleaned
from #t
所属していません StackOverflow