首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

cast 有关问题

2012-05-13 
cast 问题SQL codecreate table #tmp(ItemId int not null,ItemChildName varchar(200) not null,ItemChil

cast 问题

SQL code
create table #tmp(ItemId int not null,ItemChildName varchar(200) not null,ItemChild int   null,Usage   varchar(20) ,Qty decimal(18,6))insert into #tmp select 1,'a',2,'M',5.55insert into #tmp select 1,'b',3,'N',151.11insert into #tmp select 1,'c',4,'W',8select ItemId,ItemChild,ItemChildName,case when(Usage='M') Then Qty else CAST(Qty as int) end as Qty  from  #tmp   where ItemId=1DROP TABLE #tmp想实现 Usage是M的时候,数量就是存储的Qty,其他情况下 转换成整数,可是结果都是decimal 这是怎么回事?


[解决办法]
SQL code
create table #tmp(ItemId int not null,ItemChildName varchar(10) not null,ItemChild int   null,Usage   varchar(20) ,Qty decimal(18,6))insert into #tmp select 1,'a',2,'M',5.55insert into #tmp select 1,'b',3,'N',151.11insert into #tmp select 1,'c',4,'W',8select ItemId,ItemChild,ItemChildName,case when Usage='M' Then cast(Qty as varchar(10)) else cast(cast(Qty as int) as varchar(10)) end as Qty  from  #tmp  where ItemId=1ItemId      ItemChild   ItemChildName Qty----------- ----------- ------------- ----------1           2           a             5.5500001           3           b             1511           4           c             8(3 row(s) affected) 

热点排行