1. 程式人生 > >【轉載】oracle中decode函式用法

【轉載】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