create table employee
(emp_no number(5),
 salary ,varvhar2(10),
emp_name varvhar2(10))
 
select *from employeeEMP_NO,SALARY,EMP_NAME
123,5000,nhh
546,5600,jkkk
345,4000,fgg
2456,6000,jkk
要求查询以如下格式显示
salary_range  人数
0<S<5000       1
5000<S<6000    2
S>6000         1    

解决方案 »

  1.   

    ORCLE的条语句!case和 decode语句!看下文档应该就会了
      

  2.   

    select a.salary_range, count(*) as 人数
      from (select 
                   case
                     when salary > 0 and salary < 5000 then
                      '0<salary<5000'
                     when salary > 5000 and salary < 6000 then
                      '5000<salary<6000'
                     else
                      'salary>6000'
                   end as salary_range
              from employee) a
     group by salary_range
      

  3.   

    salary总是大于0的吧SQL>select a.salary_range, count(*) as 人数
     from(select 
            decode(sign(salary-5000),0,'0<salary<5000',1,
            decode(sign(salary-6000),0,'5000<salary<7000',1,'salary>6000')) salary_range
          from employee) a
    group by salary_range;
      

  4.   

    salary总是大于0的吧 SQL>select a.salary_range, count(*) as 人数 
    from(select 
            decode(sign(salary-5000),0,'0 <salary <5000',1, 
            decode(sign(salary-6000),0,'5000 <salary <6000',1,'salary>6000')) salary_range 
          from employee) a 
    group by salary_range; 上面笔误。。还不让修改。。
      

  5.   

    SQL>select a.salary_range, count(*) as 人数 
    from(select 
          decode(sign(salary-5000),-1,'0 <salary <5000',0,'salary=5000', 
          decode(sign(salary-6000),-1,'5000 <salary <6000',0,'salary=6000',
                    1,'salary>6000')) salary_range 
          from employee) a 
    group by salary_range; 
    ...再修改~~
      

  6.   

    郁闷SQL>select a.salary_range, count(*) as 人数 
    from(select 
          decode(sign(salary-5000),-1,'0 <salary <5000',0,'salary=5000',1, 
          decode(sign(salary-6000),-1,'5000 <salary <6000',0,'salary=6000', 
                    1,'salary>6000')) salary_range 
          from employee) a 
    group by salary_range; SORRY。。回复太快!如果你是恶意刷楼,将会受到严厉惩罚!要隔多久~