SQLSERVER补位示例

最近项目上遇到对历史数据处理的场景,基本是某个字段格式为000000-000000-000000-000000,该字段可能只有2位、也可能有10位等,位数不固定,现在需要在40位补充000001.

基本思路为固定增加39位000000,然后截取39位数据在增加固定值000001,代码如下。

--获得39位补位数据
DECLARE @temp VARCHAR(2000),@i INT
SET @temp='';
SET @i=1;
WHILE @i<=39
BEGIN
SET @temp='000000-'+@temp
SET @i=@i+1
END


--更新业务表A
UPDATE TableA 
SET ColumnA= CASE WHEN len( ColumnA)=0 THEN @temp+'000001'
else left( ColumnA+'-'+@temp,272)+'-000001'
END
WHERE ColumnB IN ('01013') --单位编号
AND ColumnC  like '6%' --科目编号

posted @ 2020-06-20 16:13  chinadba  阅读(507)  评论(0编辑  收藏  举报