在Oracle数据库orders是一张表,请问如何一个语句,可以返回下面五条语句的结果 select count(*) num1 from orders;
 select count(*) num1 from orders where state=1;
 select Sum(Price) num2 from orders  where state=1;
 select count(*) num3 from orders  where state=0;
 select Sum(Price) num4 from orders  where state=0;

解决方案 »

  1.   

    select count(*) num1 from orders; 
    select count(*) num1 from orders where state=1; 
    select Sum(Price) num2 from orders  where state=1; 
    select count(*) num3 from orders  where state=0; 
    select Sum(Price) num4 from orders  where state=0;select count(*) num,sum(decode (state,1,1,0)) num1,sum(decode (state,1,Price,0)) num2,sum(decode (state,0,1,0)) num3,sum(decode (state,0,Price,0))  from ordrs
      

  2.   

    select count(*) num,sum(decode (state,1,1,0)) num1,sum(decode (state,1,Price,0)) num2,sum(decode (state,0,1,0)) num3,sum(decode (state,0,Price,0)) num4  from ordrs
      

  3.   

    select count(1) as num,
           count(case when state = 1 then '1' end) as num1,
           sum(case when state = 1 then price end) as num2,
           count(case when state = 0 then '1' end) as num3,
           sum(case when state = 0 then price end) as num4
      from orders
      

  4.   

    select count(*) num,sum(decode (state,1,1,0)) num1,sum(decode (state,1,Price,0)) num2,sum(decode (state,0,1,0)) num3,sum(decode (state,0,Price,0))  from ordrs