我现在需要把一个表的查询结果作为新的查询条件,能不能给查询结果起多个名字。
例如:select * from
             (select name,sex,
                  case when age < 18 then '1'
                       when age >=18 and age < 65 then '2'
                       when age age >= 65 then '3'
                       else '100'
                   end test,
                   count(*) as sum
               from member) T1
能不能不重复写T1的查询条件而把查询结果也设给T2,让T2和T1的结果相同?反正以下这种情况不可以:
(select name,sex,
                  case when age < 18 then '1'
                       when age >=18 and age < 65 then '2'
                       when age age >= 65 then '3'
                       else '100'
                   end test,
                   count(*) as sum
               from member) T1,T2

解决方案 »

  1.   

    你这语句是在存储过程里面吗?如果是还好办点。可以把你的查询结果放到临时变量里面。当然更好的办法,也可以用这个with tem_table as 
    select name,sex,
      case when age < 18 then '1'
      when age >=18 and age < 65 then '2'
      when age age >= 65 then '3'
      else '100'
      end test,
      count(*) as sum
      from member
      

  2.   

    with as 后面加括号with tem_table as( 
    select name,sex,
      case when age < 18 then '1'
      when age >=18 and age < 65 then '2'
      when age age >= 65 then '3'
      else '100'
      end test,
      count(*) as sum
      from member)