sql查询语句,同一个条件,返回多个结果

例如,合同表contract(type,money,tax),当type=‘project’时,取sum(money)作为总额,当type=‘nonproject’时,取sum(money+tax)作为总额,sql如下:
select case type

    如果是Oracle的话,用Decode函数比较简洁

-- type作为查询条件进行查询
select sum(decode(type, 'project', money, 'nonproject', money+tax))
from contract 
where type='type值';

-- 不传值,直接汇总
select sum(decode(type, 'project', money, 0)) as project_sum,
       sum(decode(type, 'nonproject', money+tax, 0)) as nonproject_sum
from contract

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-06
SELECT SUM(money + CASE type WHEN 'project' THEN 0 WHEN 'nonproject' THEN tax END) FROM contract
相似回答