decode()函數(shù)是SQL中比較常見的函數(shù),主要用于將查詢結(jié)果翻譯成其他值,下面將為您介紹SQL中decode()函數(shù),供您參考。
decode()函數(shù)簡(jiǎn)介:
主要作用:將查詢結(jié)果翻譯成其他值(即以其他形式表現(xiàn)出來,以下舉例說明);
使用方法:
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等;
舉例說明:
現(xiàn)定義一table名為output,其中定義兩個(gè)column分別為monthid(var型)和sale(number型),若sale值=1000時(shí)翻譯為D,=2000時(shí)翻譯為C,=3000時(shí)翻譯為B,=4000時(shí)翻譯為A,如是其他值則翻譯為Other;
SQL如下:
Select monthid , decode (sale,1000,'D',2000,'C',3000,'B',4000,'A',’Other’) sale from output
特殊情況:
若只與一個(gè)值進(jìn)行比較
Select monthid ,decode(sale, NULL,‘---’,sale) sale from output
另:decode中可使用其他函數(shù),如nvl函數(shù)或sign()函數(shù)等;
NVL(EXPR1,EXPR2)
若EXPR1是NULL,則返回EXPR2,否則返回EXPR1.
SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1;
如果用到decode函數(shù)中就是
select monthid,decode(nvl(sale,6000),6000,'NG','OK') from output
sign()函數(shù)根據(jù)某個(gè)值是0、正數(shù)還是負(fù)數(shù),分別返回0、1、-1,
如果取較小值就是
下文將為您詳細(xì)介紹SQL中的SUBSTRING函數(shù),包括SUBSTRING函數(shù)的功能、語法等,如果您是才接觸SQL語言的新手,不妨一看,相信會(huì)對(duì)您有所幫助。
功能:返回字符、二進(jìn)制、文本或圖像表達(dá)式的一部分
語法:SUBSTRING ( expression, start, length )
SQL 中的 substring 函數(shù)是用來抓出一個(gè)欄位資料中的其中一部分。這個(gè)函數(shù)的名稱在不同的資料庫中不完全一樣:
MySQL: SUBSTR(), SUBSTRING()
Oracle: SUBSTR()
SQL Server: SUBSTRING()
參數(shù):
expression 字符串、二進(jìn)制字符串、文本、圖像、列或包含列的表達(dá)式。請(qǐng)勿使用包含聚合函數(shù)的表達(dá)式。
start 整數(shù)或可以隱式轉(zhuǎn)換為 int 的表達(dá)式,指定子字符串的開始位置。
length 整數(shù)或可以隱式轉(zhuǎn)換為 int 的表達(dá)式,指定子字符串的長(zhǎng)度。
返回值:
如果 expression 是一種支持的字符數(shù)據(jù)類型,則返回字符數(shù)據(jù)。如果 expression 是一種支持的二進(jìn)制數(shù)據(jù)類型,則返回二進(jìn)制數(shù)據(jù)。如果 start = 1,則子字符串從表達(dá)式的第一個(gè)字符開始。
返回字符串的類型與給定表達(dá)式的類型相同(下表所示內(nèi)容除外)。
聯(lián)系客服