DB2數據庫查詢

好記性不如寫一遍,複習用
1:普通查詢
SELECT
    THIRDSYSTIME AS 交易時間,AMOUNT  AS 交易金額,AUTHORCODE  AS 交易碼, FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO;

2:篩選查詢
SELECT
    THIRDSYSTIME AS 交易時間,AMOUNT  AS 交易金額,AUTHORCODE  AS 交易碼, FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO
WHERE  AMOUNT>=900.00


篩選查詢主要有:

=【等於】

!=<>【不等於】

>【大於】

<【小於】

>=【大於等於】

<=【小於等於】

3:特殊關鍵字篩選

Likenot like;innot in;between...andnot between...and;is nullnot is null

Like【模糊查詢】

_:代表一個字符;

%:代表任意個字符

SELECT
    THIRDSYSTIME AS 交易時間,AMOUNT  AS 交易金額,AUTHORCODE  AS 交易碼, FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO
WHERE  AUTHORCODE like '32%'
SELECT
    THIRDSYSTIME AS 交易時間,AMOUNT  AS 交易金額,AUTHORCODE  AS 交易碼, FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO
WHERE  AUTHORCODE like '3_2%';

IN【匹配查詢】

SELECT
    THIRDSYSTIME AS 交易時間,AMOUNT  AS 交易金額,AUTHORCODE  AS 交易碼, FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO
WHERE  FEE in (9.00,4.00)

between...and...【區間查詢】要爲小寫
SELECT
    THIRDSYSTIME AS 交易時間,AMOUNT  AS 交易金額,AUTHORCODE  AS 交易碼, FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO
WHERE  FEE  between  1.00 and 2.00

4:邏輯篩選

And;or;not

SELECT
    THIRDSYSTIME AS 交易時間,AMOUNT  AS 交易金額,AUTHORCODE  AS 交易碼, FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO
WHERE  FEE>= 1.00 and FEE<=2.00

or【】
SELECT
    THIRDSYSTIME AS 交易時間,AMOUNT  AS 交易金額,AUTHORCODE  AS 交易碼, FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM T_CPS_CUPSICACINFO
WHERE  FEE>= 9.00 or FEE<=1.00


5:分組查詢  Group by
SELECT
     FEE  AS 手續費,count(FEE) AS 總數,avg(AMOUNT) AS 平均交易金額
FROM T_CPS_CUPSICACINFO
group by FEE

where   group by
SELECT
     FEE  AS 手續費,count(FEE) AS 總數,avg(AMOUNT) AS 平均交易金額
FROM T_CPS_CUPSICACINFO  where FEE>=5.00
group by FEE

where   group by  having
SELECT
     FEE  AS 手續費,count(FEE) AS 總數,avg(AMOUNT) AS 平均交易金額
FROM T_CPS_CUPSICACINFO  where FEE>=5.00
group by FEE having avg(AMOUNT)>500.00

注意:where;group by;having的執行順序

Where用於篩選有from指定的數據對象;

Group by 用於對wherefrom的結果進行分組

Having是對group by分組數據再進行過濾

With rollup 函數


SELECT
     FEE  AS 手續費,count(FEE) AS 總數,avg(AMOUNT) AS 平均交易金額
FROM T_CPS_CUPSICACINFO
group by FEE  with rollup

6:排序查詢

Order by desc【降序】

Order by asc【默認升序】
SELECT
     FEE  AS 手續費,count(FEE) AS 總數,avg(AMOUNT) AS 平均交易金額
FROM T_CPS_CUPSICACINFO where fee>=5.00
group by FEE  order by FEE desc

7:其他常用聚集函數

Sum【求和】

Avg【平均值】

Max【最大值】

Min【最小值】

Count【行數】
8:子查詢

子查詢的使用地方相當多,在select,insert,update,delete命令中允許是一個表達式的地方都可以包含子查詢

以分頁查詢爲例:

SELECT THIRDSYSTIME AS 交易時間, AMOUNT  AS 交易金額,FEE  AS 手續費,SYSSERNO AS 系統跟蹤號
FROM
    (SELECT T_CPS.*,ROWNUMBER() OVER() AS RNUM  FROM
             (SELECT * FROM T_CPS_CUPSICACINFO) AS T_CPS) AS A
WHERE
A.RNUM BETWEEN 10 AND 20; 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章