2013-04-24 44 views
0

我想打印如果在'。'之後選擇查詢問題打印第2個十進制值。十進制值只有「0」 - SQL

條件1:從我的十進制值 1兩位數IF小數點後列「」 0

EX:If Column value is 123.00000 = 123.00 

條件2:我需要打印相同的十進制數列的值,如果有經過一番值「」

EX: If Column value is 123.00200 = 123.00200 
    If Column value is 123.10000 = 123.10000 

我試過下面的查詢。但沒有得到預期的輸出

SELECT 
    CASE 
    WHEN PARSENAME(dbo.tblS.DecColumn,1) > 1 THEN dbo.tblS.DecColumn 
    ELSE cast(round(dbo.tblS.DecColumn,2) as numeric(36,2)) 
    END AS 'ColumnValue' 
From 
dbo.tblS 

回答

1

讓我們假設這樣的數據:

create table t (n float); 
insert into t values 
(1.00100), 
(1.0); 

查詢將是:

select 
    case cast(n as int) 
     when n then str(cast(n as int)) + '.00' 
     else cast(n as varchar) 
    end 
from t; 

Demo

| SOURCE |  TARGET | 
-------------------------- 
| 1.001 |   1.001 | 
|  1 |   1.00 | 
+0

Gr8工作..這是我的預期:) – 2013-04-24 08:51:27

1

嘗試......

SELECT 
     CASE 
     WHEN (dbo.tblS.DecColumn-Cast(dbo.tblS.DecColumn as int))>0 THEN dbo.tblS.DecColumn 
     ELSE cast(dbo.tblS.DecColumn as Decimal(36,2) 
     END AS 'ColumnValue' 
    From 
    dbo.tblS