0

SQL 2012 の列には約 3000 のエントリがあり、現時点では構造化されていません。

1.1.01.10、1.1.1.11

すべての単一の数値の先頭に 0 を含む形式にデータを取得したい

01.01.01.10 など。

更新クエリでこれを行う方法はありますか? Excelにエクスポートしてそこで操作することでこれを行うことができますが、可能であればこれを避けたいです。

4

2 に答える 2

0
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
于 2014-07-02T10:04:27.230 に答える