填充多个空行

时间:2016-04-06 04:01:52

标签: sql sql-server

我正在尝试从我的桌子填充空行。这是我桌上的例子。

ID | Code      | 
1    NULL
2    NULL
3    NULL

我想要的是

  ID |     Code      | 
    1    KL0000001
    2    KL0000002
    3    KL0000003

我正在使用sql server 2008,到目前为止这是我的脚本:

declare @jml as int;
declare @no as int = 1; 
declare @kode as varchar(50);   
    set @jml = (SELECT COUNT(IdArealeader) FROM arealeader);
    set @kode = (select case 
                 when right(max(KodeareaLeader),7) is null then 'KL0000001' 
                 else ('KL' + RIGHT('0000000' + cast(right(max(KodeareaLeader),7) + 1 as nvarchar),7)) 
                 end KodeareaLeader from arealeader)
while @no < @jml begin  
    update arealeader set KodeareaLeader = @kode;
END

1 个答案:

答案 0 :(得分:2)

试试这个简单的方法,

UPDATE  T
SET     T.Code  =   'KL'+REPLICATE('0',7 - LEN(ID))+CAST(ID AS NVARCHAR(10))
FROM    test_table  T

尽量避免循环,只在必要时使用。

Result
ID  Code
1   KL0000001
2   KL0000002
3   KL0000003
....
10  KL0000010