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

这个CASE语句如何写

2012-03-30 
这个CASE语句怎么写。info表中有a字段,其类型为VARCHAR2(),值为20.5,30.1等数据,业务逻辑要求合计该字段,同

这个CASE语句怎么写。
info   表中有a字段,其类型为VARCHAR2(),值为20.5,30.1等数据,业务逻辑要求合计该字段,同时要求150封顶,SQL如何写?
select   case   when   sum(a)   >   150   then   '150 '   else   sum(a)   end   as   A   from   info  

以上语句在else   sum(a)处报“数据类型不一致”错误!

[解决办法]
select case when sum(a) > 150 then 150 else sum(a) end as A from info
[解决办法]
'150 ' 与 else sum(a) 的结果类型不一致导致的错误


[解决办法]
问题在于sum函数中不能使用varchar2类型的字段
select case when sum(to_number( '20 ')) > 19 then 'yes ' else 'no ' end ship_no from dual;

你的:
select case when sum(to_number(a)) ) > 150 then '150 ' else sum(to_number(a)) )end as A from info
[解决办法]
如果前面就写成 '150封顶 ',那么后面的else sum(a)如何改?
select case when sum(a) > 150 then '150封顶 ' else to_char(sum(a)) end as A from info

热点排行