2013-01-18 103 views
0

我在MS SQL Server表數值列(列1表示)阿爾特數值格式

出現這樣

Column1 
23.50000 
170.50000 
53.50000 

注意的數據:總有小數點後5位。

現在我需要一個MS SQL查詢以下列方式

Column1 
00023500 
00170500 
00053500 

變換爲5位數字爲整數部分和3位數字的十進制部分以顯示數值。

+1

SQL服務器是不是真的。你使用什麼前端報告系統/網站? – Hogan

回答

0

我認爲你應該做這個客戶端上的

RIGHT('00000000'+CONVERT(VARCHAR,CONVERT(INT,field*1000)),8) 
+0

上面的查詢在大多數例子中都起作用。但如果我的輸入是413142.5022,我需要得到的輸出是41314502.但上述查詢返回13142502 –

+0

我不明白什麼是轉換413142.5022 - > 41314502的邏輯?你放棄1位數字嗎?請解釋 – Hogan

0

如果我理解正確的,你需要什麼地方得到的數據顯示

declare @t table(a dec(18,5)) 
    insert into @t values(23.50000),(170.50000),(53.50000),(322.50000),(413142.5022) 

    select a, left(replace(replicate('0', 
    case when 6-CHARINDEX('.',cast(a as varchar),1)<0 then 0 else 
6-CHARINDEX('.',cast(a as varchar),1) end) 
    +cast(a as varchar),'.',''),8) from @t