日期:2014-05-17  浏览次数:20621 次

急救啊!求类似ifelse判断功能的sql写法!!
如题所说
举个例子,比如说我有表STUDENT , 有列 NAME ,AGE

有几行数据
张三 22
李四 23
王五 28
赵六 18
。。。

想要一条sql语句:做一个统计,得到年龄大于24的同学,不大于24的同学也给显示出来,但年龄变为"不满足条件"

(举的是例子 没有实际意义)

结果应该是这样

张三 不满足
李四 不满足
王五 28
赵六 不满足

结果还是4行 行数必须和原表是一样的。

这个sql怎么写??求大神指导我,感激不尽!

------解决方案--------------------
用case when else end语句就可以了
SQL code
select name, (case when age > 24 then age else '不满足' end) as user_condition
  from your_table

------解决方案--------------------
oracle的话,可用#2的,但age要转一下类型,否则与后面的不配,以下的测试成功:

select name, (case when age > 24 then to_char(age) else '不满足' end) as user_condition
from test

------解决方案--------------------
用decode也可以:
select name, decode(sign(24-age),-1, to_char(age),'不满足') as user_condition
from test
/