SQL 2012 の列には約 3000 のエントリがあり、現時点では構造化されていません。
1.1.01.10、1.1.1.11
すべての単一の数値の先頭に 0 を含む形式にデータを取得したい
01.01.01.10 など。
更新クエリでこれを行う方法はありますか? Excelにエクスポートしてそこで操作することでこれを行うことができますが、可能であればこれを避けたいです。
SQL 2012 の列には約 3000 のエントリがあり、現時点では構造化されていません。
1.1.01.10、1.1.1.11
すべての単一の数値の先頭に 0 を含む形式にデータを取得したい
01.01.01.10 など。
更新クエリでこれを行う方法はありますか? Excelにエクスポートしてそこで操作することでこれを行うことができますが、可能であればこれを避けたいです。
Alter function Pad
(
@str varchar(max)
)
returns varchar(max)
as
begin
Declare @nstr varchar(max)
while(PATINDEX('%.%',@str)<>0)
begin
Set @nstr = isnull(@nstr,'')+case when PATINDEX('%.%',@str) = 2 then '0'+substring(@str,PATINDEX('%.%',@str)-1,1) else SUBSTRING(@str,1,PATINDEX('%.%',@str)-1) end+'.'
Set @str = case when PATINDEX('%.%',@str) = 2 then stuff(@str,PATINDEX('%.%',@str)-1,2,'') else stuff(@str,1,PATINDEX('%.%',@str),'') end
end
Set @nstr = isnull(@nstr,'')+case when len(@str) <> 1 then @str when len(@str) = 1 then '0'+@str else '' end
return @nstr
end
update t
set num = [dbo].pad(num)
from table t