2016-11-01 24 views
0

我有以下稱爲「MaterialPrice」的字段。它是一種數據類型 -使用填充零格式化datetime到varchar

DECIMAL (18,2) 

所以一個樣本值是「10.88」

我需要改變什麼是像下面 -

0000000000000**1088**0 

所以字段長度18,最後一個字符(左邊總是0)以及原始值前面的字符也填充了零。

另一個例子是

501.02 

將是

000000000000**50102**0 

任何幫助,將不勝感激。

由於

+0

不知道我理解的邏輯,在數量和填充的右1爲零,直到18個字符向左? – sagi

+0

什麼1.00或0.00? – NEER

回答

0

如果我理解正確LY的要求,可以爲以下:

DECLARE @val DECIMAL(18, 2) = 501.02 
SELECT REPLICATE(0, 18 - LEN(@val)) + '**' + REPLACE(CAST(@val AS VARCHAR(50)), '.', '') + '**0' 

結果:000000000000**50102**0

0

我將:

  1. 乘以100,
  2. 澆鑄到串,
  3. 測量長度,
  4. 級聯:(17-長度)的 「0」, 「**」,字符串編號和「** 0