2011-12-20

SQL自動補0

某些欄位依照資料流水編號紀錄,
如果預設的資料型態為數值型態,
則以1、2、3的形式紀錄,
若希望以001、002、003的方式表達,

可利用REPLICATE函數指定重複字串次數的功能達到需求,
REPLICATE(欲重複字串,欲重複次數)
--若為數字型態欄位需先轉為字串型態
select REPLICATE('0',(3-LEN(欄位)))+欄位
from TableName

select REPLICATE('0',(4-LEN(CONVERT(varchar(3),1))))+
        CONVERT(varchar(3),1)
-------------------------------------------------
001

select REPLICATE('0', (4-LEN(CONVERT(Varchar(4),ROW_NUMBER()
          OVER(Order by M.ProdNo)))))+
          CONVERT(Varchar(4),ROW_NUMBER() OVER(Order by M.ProdNo)),M.ProdNo
from MATCost_tmp M
-------------------------------------------------
0001    R11010002
0002    R11010003
0003    R11020001
參考自:MSDN-REPLICATE The Will Will Web
張貼留言