1、使用三元表达式

如果姓名=‘小小’那么查找年龄大于18岁的,如果不等于‘张三’就找小于等于18岁的

select * from students where (name != ‘小小’) ? students.age<=18 : students.age>18;

2、decode函数

DECODE的语法:

DECODE(value,if1,then1,if2,then2,if3,then3,...,else)

表示如果value等于if1时,DECODE函数的结果返回then1,…,如果不等于任何一个if值,则返回else。

3、case when

case when a='1'then 'xxxx'
     when a='2' then 'ssss'
else
  'zzzzz'
end as

注意点:

1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名

更多推荐

ORACLE select语句中IF语句的替代方法