【转载】oracle中decode函数用法

1、DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else)。表示假设value 等于if1时,DECODE函数的结果返回then1,...,假设不等于不论什么一个if值。则返回else

2、该函数的含义例如以下:
  IF 条件=值1 THEN
      RETURN(翻译值1)
  ELSIF 条件=值2 THEN
      RETURN(翻译值2)
      ......
  ELSIF 条件=值n THEN
      RETURN(翻译值n)
  ELSE
      RETURN(缺省值)
  END IF

3、比较大小

  select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值

  sign()函数依据某个值是0、正数还是负数。分别返回0、1、-1

  比如:

  变量1=10,变量2=20

  则sign(变量1-变量2)返回-1。decode解码结果为“变量1”。达到了取较小值的目的。

4、有学生成绩表student,如今要用decode函数实现下面几个功能:成绩>85,显示优秀;>70显示良好;>60及格;否则是不及格。

  如果student的编号为id,成绩为score,那么:
  select id, decode(sign(score-85),1,'优秀',0,'优秀',-1, 
  decode(sign(score-70),1,'良好',0,'良好',-1, 
  decode(sign(score-60),1,'及格',0,'及格',-1,'不及格'))) 
  from student。

5、Decode函数的语法结构例如以下:
  decode (expression, search_1, result_1)
  decode (expression, search_1, result_1, search_2, result_2)
  decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)

  decode (expression, search_1, result_1, default)
  decode (expression, search_1, result_1, search_2, result_2, default)
  decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)

  decode函数比較表达式和搜索字,假设匹配,返回结果;假设不匹配,返回default值;假设没有定义default值,则返回空值。

原文:https://www.cnblogs.com/mengfanrong/p/5206458.html

猜你喜欢

转载自www.cnblogs.com/licheng0201/p/10043243.html