我正在尝试打印
条件1:我的十进制值中的第一个两位数字'。'后面的十进制列。是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
答案 0 :(得分: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 |
答案 1 :(得分: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