程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL中 decode()函數簡介

SQL中 decode()函數簡介

編輯:MSSQL

SQL中 decode()函數簡介。本站提示廣大學習愛好者:(SQL中 decode()函數簡介)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL中 decode()函數簡介正文


DECODE函數,是ORACLE公司的SQL軟件ORACLE PL/SQL所供給的特有函數盤算方法,以其簡練的運算方法,可控的數據模子和靈巧的格局轉換而著名。

明天看他人的SQL時看這外面還有decode()函數,之前歷來沒接觸到,上彀查了一下,還挺好用的一個函數,寫上去願望對同伙們有贊助哈!

decode()函數簡介:

重要感化:將查詢成果翻譯成其他值(即以其他情勢表示出來,以下舉例解釋);

應用辦法:

Select decode(columnname,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)
From talbename
Where …

個中columnname為要選擇的table中所界說的column,

·寄義說明:

decode(前提,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)的懂得以下:

if (前提==值1)
then    
return(翻譯值1)
elsif (前提==值2) 
then    
return(翻譯值2)    
......
elsif (前提==值n)
then    
return(翻譯值n)
else    
return(缺省值)
end if

注:個中缺省值可所以你要選擇的column name 自己,也能夠是你想界說的其他值,好比Other等;

舉例解釋:

現界說一table名為output,個中界說兩個column分離為monthid(var型)和sale(number型),若sale值=1000時翻譯為D,=2000時翻譯為C,=3000時翻譯為B,=4000時翻譯為A,如是其他值則翻譯為Other;

SQL以下:

Select monthid , decode (sale,1000,'D',2000,'C',3000,'B',4000,'A','Other') sale from output

特別情形:

若只與一個值停止比擬

Select monthid ,decode(sale, NULL,‘---',sale) sale from output

另:decode中可以使用其他函數,如nvl函數或sign()函數等;

NVL(EXPR1,EXPR2)

若EXPR1是NULL,則前往EXPR2,不然前往EXPR1.

SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1;

假如用到decode函數中就是

select monthid,decode(nvl(sale,6000),6000,'NG','OK') from output 

sign()函數依據某個值是0、負數照樣正數,分離前往0、1、-1,

假如取較小值就是

select monthid,decode(sign(sale-6000),-1,sale,6000) from output,即到達取較小值的目標。

小結:

感化:將輸出數值與函數中的參數列表比擬較,依據輸出值前往一個對應值。函數的參數列表是由若干數值及其對應成果值構成的若干序偶情勢。固然,假設未能與任何一個實參序偶婚配勝利,則函數也有默許的前往值。 差別於SQL的其它函數,DECODE函數還能辨認和操作空值。

語法:DECODE(control_value,value1,result1[,value2,result2…][,default_result]);

control _value試圖處置的數值。DECODE函數將該數值與前面的一系列的偶序比擬較,以決議前往值。 value1是一構成序偶的數值。假設輸出數值與之婚配勝利,則響應的成果將被前往。對應一個空的前往值,可使用關鍵字NULL於之對應 result1 是一構成序偶的成果值。 default_result 未能與任何一個值婚配時,函數前往的默許值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved