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

sql难题解决思路

2013-01-25 
sql难题有一个表 jkx字段 ID : varchar2length: numberxh : varchar2怎么查询出jkx表length的总长度,和字

sql难题
有一个表 jkx
字段 ID : varchar2
     length: number
     xh : varchar2
怎么查询出jkx表length的总长度,和字段xh以'J'开头的表length的总长度,用一条sql语句写。
也就是把:
select sum(length) from res_jkx_info;
select sum(length) from res_jkx_info where xh like 'J%';
合并成一条sql语句。
我都想了好几天了,都没想出怎么写,求各位帮帮忙。  sql
[解决办法]
select sum(case when xh like 'J%' then length*2 else length end) from res_jkx_info 
[解决办法]
select sum(t.length),sum(decode(substr(t.xh,0,1),'J',t.length,0)) from jkx t
[解决办法]


with t1 as
(
     select 1 id,10 length,'aaa' xh from dual union all
     select 2 id,20 length,'jbb' xh from dual union all
     select 3 id,30 length,'cc' xh from dual union all
     select 4 id,40 length,'jjj' xh from dual
)

select sum(length) c1,
       sum(case when xh like 'j%' then length else 0 end) c2
from t1


    c1    c2
----------------------
110060


[解决办法]
SELECT SUM(T. length),
       SUM(CASE
             WHEN T.xh LIKE 'J%' THEN
              T. length
             ELSE
              0
           END)
  FROM  jkx T

热点排行