0

我正在尝试打印

条件 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
4

2 回答 2

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;

演示

| SOURCE |        TARGET |
--------------------------
|  1.001 |         1.001 |
|      1 |          1.00 |
于 2013-04-24T08:03:04.623 回答
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
于 2013-04-24T08:39:52.957 回答