主要實(shí)驗(yàn)了幾個常用的判斷NULL值及DECODE的函數(shù)。
如下語句是,如果COMM是空,則顯示MGR。如果COMM也為空,則顯示EMPNO。如果EMPNO也為空,則顯示886.
KING的COMM是NULL值,MGR也是NULL,所以返回顯示了工號7839。
SMITH的COMM是NULL值,MGR為值,所以返回顯示了MGR的號碼:7902
BYS@bys1>select ename,empno,mgr,comm,coalesce(comm,mgr,empno,886) from emp;MILLER 7934 7782 7782
decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 該函數(shù)的含義如下:
IF 條件=值1 THEN
RETURN(翻譯值1)
ELSIF 條件=值2 THEN
RETURN(翻譯值2)
......
ELSIF 條件=值n THEN
RETURN(翻譯值n)
ELSE
RETURN(缺省值)
END IF
如下兩條語句,decode(5,1,'ok',2)中,如5等于1,返回OK。不等于1,返回2
BYS@bys1>select decode(5,1,'ok',2) from dual;
D
-
2
BYS@bys1>select decode(1,1,'ok',2) from dual;
DE
--
ok
如下的表:decode(xx,9,1,0),即XX行的值為9,則顯示1,不為9,則顯示0.
BYS@bys1>select * from aa;
XX
----------
9
5
5
9
5
9
9
7 rows selected.
BYS@bys1>select decode(xx,9,1,0),decode(xx,5,1,0) from aa;
DECODE(XX,9,1,0) DECODE(XX,5,1,0)
---------------- ----------------
1 0
0 1
0 1
1 0
0 1
1 0
可用于統(tǒng)計(jì)等于某個數(shù)值的列總共有多少行。分組函數(shù)不統(tǒng)計(jì)NULL值
BYS@bys1>select count(decode(xx,9,1,null)),count(decode(xx,5,1,0)) from aa;
COUNT(DECODE(XX,9,1,NULL)) COUNT(DECODE(XX,5,1,0))
-------------------------- -----------------------
4 7
新聞熱點(diǎn)
疑難解答
圖片精選