2016-03-31 84 views
0

我正在開發一個表格,我遇到了一個問題,我可能會以這種錯誤的方式解決問題,但我遇到了一個障礙。我需要更新的表中有ID和ID,它是一個NVARCHAR(12)字段,目前它有數字。我需要格式化它,如下所示:TP0000000001,TP0000000002,...,TP0000245632,...,TP9999999999。我只需要找到一種方法來追加TP和尾隨零加上整個字符串加起來爲12的ID號。我目前正在使用一個while循環和一些硬編碼信息,但我需要它是動態的,因爲我有大約14000記錄做更新。動態連接

這裏是更新,我會用:

UPDATE Vendor 
SET TPPRM_ID = <The Formatted Value> 

這裏是目前與硬編碼,我需要以格式塔格式數量,以正確的代碼調用TPPRM_ID,你可以在更新中看到。任何幫助,將不勝感激。

DECLARE @Var NVARCHAR(12) 
DECLARE @Counter INT 
SET @VAR = 'TP' 
SET @Counter = 1 

WHILE @Counter <= 12 
    BEGIN 
     SET @VAR = @VAR + '0' 
     SET @Counter = @Counter + 1 

     IF LEN(@Var) >= 10 
     BEGIN 
      SELECT @VAR + '10' 
      PRINT @VAR 
      BREAK 
     END 

     --PRINT @VAR 
    END 

回答

1

剛超過零點,然後切斷最右邊的10個字符。然後追加'TP'

SELECT 'TP' + RIGHT(REPLICATE('0',10) + TPPRM_ID),10) 
FROM Vendor 
+0

大!這很奇妙。 –

1

另一種解決方案是 -

SELECT 'TP' + REPLACE(STR(TPPRM_ID, 10), ' ', 0) 
FROM Vendor