麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

ORACLE單行函數(shù)與多行函數(shù)之六:通用函數(shù)示例

2024-08-29 13:57:40
字體:
供稿:網(wǎng)友

主要實(shí)驗(yàn)了幾個常用的判斷NULL值及DECODE的函數(shù)。

1.NVL(a,b):判斷A字段的內(nèi)容為null時,運(yùn)算結(jié)果為指定的值。A不為NULL,則顯示A的值。

如果COMM的值為NULL,則返回顯示為200.
BYS@bys1>Select COMM,NVL(COMM,200) From EMP where rownum<3;
      COMM NVL(COMM,200)
---------- -------------
                     200
       300           300

2.NVL2(a,b,c):如果第一個表達(dá)式a的值不為null,顯示表達(dá)式2的值;如果a為null,顯示表達(dá)式C的值。
如果comm值不為NULL,返回678;如果為NULL,返回999.
BYS@bys1>select sal,comm,nvl2(comm,678,999) from emp where rownum<5;
       SAL       COMM NVL2(COMM,678,999)
---------- ---------- ------------------
       800                           999
      1600        300                678
      1250        500                678
      2975                           999


3.NULLIF:如果前后兩個表達(dá)式的內(nèi)容相等的,那就返回null,否則,返回第一個表達(dá)式的值

如果工資sal=3000,則返回NULL值。
BYS@bys1>select sal,ename,nullif(sal,3000) from emp order by 1 desc;
       SAL ENAME      NULLIF(SAL,3000)
---------- ---------- ----------------
      5000 KING                   5000
      3000 FORD
      3000 SCOTT

      2975 JONES                  2975
      2850 BLAKE                  2850
      2450 CLARK                  2450
      1600 ALLEN                  1600
      1500 TURNER                 1500
      1300 MILLER                 1300
      1250 WARD                   1250
      1250 MARTIN                 1250
      1100 ADAMS                  1100
       950 JAMES                   950

4.COALESCE函數(shù):用來匹配多個字段的值,如果表達(dá)式1的值為null,顯示表達(dá)式2的值,如果表達(dá)式2也為空,顯示表達(dá)式3的值,依次類推

如下語句是,如果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;

ENAME           EMPNO        MGR       COMM COALESCE(COMM,MGR,EMPNO,886)
---------- ---------- ---------- ---------- ----------------------------
SMITH            7369       7902                                    7902
ALLEN            7499       7698        300                          300
WARD             7521       7698        500                          500
JONES            7566       7839                                    7839
MARTIN           7654       7698       1400                         1400
BLAKE            7698       7839                                    7839
CLARK            7782       7839                                    7839
SCOTT            7788       7566                                    7566
KING             7839                                               7839
TURNER           7844       7698          0                            0
ADAMS            7876       7788                                    7788
JAMES            7900       7698                                    7698
FORD             7902       7566                                    7566

MILLER           7934       7782                                    7782

5.decode函數(shù),DECODE函數(shù)可以直接對NULL做等值判斷

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人免费在线播放 | 欧美一级黄色录相 | 成人在线观看免费观看 | 欧美黄色一级片视频 | 久久久久久久久亚洲精品 | 免费看黄色一级大片 | 亚洲自拍第二页 | 成人一级黄色大片 | 成人黄色网战 | 亚洲精品免费播放 | 国产一区精品在线观看 | 国产亚洲高清视频 | 久久嗨 | 在线看日本 | 嫩草影院在线观看网站成人 | 少妇av片| 美女视频网站黄色 | 久久露脸国语精品国产91 | 午夜精品老牛av一区二区三区 | 手机视频在线播放 | www.热| 欧美精品一区二区视频 | 国产精品资源手机在线播放 | 少妇一级淫片高潮流水电影 | 亚洲一区二区国产 | 国产一区二区不卡视频 | 懂色粉嫩av久婷啪 | 国产精品久久久久久久久久 | 国产一精品久久99无吗一高潮 | 中文字幕一区二区三区久久 | 97中文| 久章草在线观看 | av在线播放地址 | 激情久久一区二区 | 亚洲va久久久噜噜噜久牛牛影视 | 欧美一级在线免费 | 亚洲日本韩国在线观看 | 国产成人高清成人av片在线看 | 爱性久久久久久久 | 久久久成人一区二区免费影院 | 可以看毛片的网址 |