我正在尝试从我的桌子填充空行。这是我桌上的例子。
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
答案 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