oracle小記之一些系統函數、自定義函數、關鍵字(20120719更新)

題記:收集一些在工作中常用的oracle知識點,不斷的更新,不斷的積累,就當作自己的記事本吧。



一些關鍵字


1 IS NOT NULL,判斷字段否爲空

select * from t_user u where u.name is not null

2 CASE WHEN... THEN ... ELSE ... END  ,條件語句 

 SELECT  CASE WHEN '條件' IS NOT NULL THEN '條件成立' ELSE '條件不成立' END AS 結果 FROM t_user


3 EXISTS,  NOT EXISTS,   判斷是否存在,通常放到WHERE 的後面




一些系統函數


1.    TO_CHAR()

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') FROM DUAL

顯示 :  2012-06-15 10:11:45


2.  TO_DATE()   轉爲爲某種格式的時間

select to_date('$時間參數$ 0:0:0','yyyy-mm-dd hh24:mi:ss')    from dual  

時間參數可以爲 :  2012-06-15


3. TRUNC(SYSDATE)   返回當天的日期

select  trunc(sysdate) from dual
顯示:  2012-7-4

4. NVL(str,replayStr)

如果str爲null,則返回指定的relayStr值;如果str不爲null,則返回str.





一些自定義函數


1. 寫一個工作用到的函數CHECK_DEMAND_IS_NOTICE,該函數需傳入一個NUMBER類型的數據,結果返回一個 VARCHAR2的類型數據

CREATE OR REPLACE FUNCTION CHECK_DEMAND_IS_NOTICE(V_DE_ID IN NUMBER) RETURN VARCHAR2
--檢查需求單是否已經通知
IS
    --未被通知的待裝單數量
    V_NOT_NOTICE_COUNT NUMBER(12);
BEGIN
    --查詢
    SELECT COUNT(1) INTO V_NOT_NOTICE_COUNT FROM ZY_POC_WAIT_ORDER W WHERE IS_NOTICE = '0'
    AND EXISTS(
        SELECT 1 FROM ZY_MAP_DEMAND_WAIT_ORDER Z WHERE Z.DE_ID =V_DE_ID AND W.ID = WAIT_ORDER_ID
    );
    --如果大於0則需求單未被通知
    IF V_NOT_NOTICE_COUNT >0 THEN
        RETURN '0';
    END IF;
    RETURN '1';
END;




 






發佈了79 篇原創文章 · 獲贊 27 · 訪問量 58萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章