表A:
id   age    name 
1    27     张三
2    40     李四
3    60     王五
用一条sql语句写出:
查询出id,age,name加一列年龄段,如果年龄大于58,输出老年,如果年龄35---58之间,输出中年,
如果年龄小于35,输出青年。

解决方案 »

  1.   

    sqlserver:
    select *,case when age<35 then '青年' when age>58 then '老年' else '中年' end as AgeStatus from table
      

  2.   

    oracle 9i以后也支持case语句SELECT *,
           CASE
              WHEN age < 35
                 THEN '青年'
              WHEN age > 58
                 THEN '老年'
              ELSE '中年'
           END AS agestatus
      FROM tabname
    否则,可以使用decode
      

  3.   

    我就是想知道用decode该怎么写?
      

  4.   

    好像可以这样写,仅供参考:)SELECT *,decode(SIGN (age - 36),-1,'青年',decode(SIGN (57 - age),-1,'老年','中年')) agestatus
      FROM tabname