<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 8, comments - 0, trackbacks - 0, articles - 11

    Oracle sql 寫法

    Posted on 2012-09-12 12:57 a_alter 閱讀(221) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫
    本文用途:因為暫時沒有時間去具體看oracle sql的官方文檔 ,紀錄oracle的一些特殊寫法。 (不斷更新)
    1. with ...  as ...
    with querya as (select * from TB_Test)
    2  case .. (when .. then) .... (when ..  then) .. else ... end
        SELECT FO_FULFILL_TRX_STRING.SEQUENCE_NO, AC_TYPE_ORDER.CODE, CASE
        WHEN AC_TYPE_ORDER.CODE = 'SO'
        THEN ( SELECT ORDER_NUMBER FROM SO_ORDER WHERE SO_ORDER.AID = FO_FULFILL_TRX_STRING.AID_ORDER_SO )
        ELSE ( SELECT ORDER_NUMBER FROM PO_ORDER WHERE PO_ORDER.AID = FO_FULFILL_TRX_STRING.AID_ORDER_PO )
        END ORDER_NUMBER
        FROM FO_FULFILL_TRX_STRING, AC_TYPE_ORDER.CODE
    ------------------------------------------------------------------------------------------------------------------------------
    MYSQL 正則支持
    select * from tb_rule_list where expression regexp '^.*\\$\\{0}\\[3].*$';
    Oracle  正則函數(shù)支持
    ORACLE中的支持正則表達式的函數(shù)主要有
        REGEXP_LIKE :與LIKE的功能相似
        REGEXP_INSTR :與INSTR的功能相似
        REGEXP_SUBSTR :與SUBSTR的功能相似
        REGEXP_REPLACE :與REPLACE的功能相
     
    ------------------------------------------------------------------------------------------------------------------------------
    在MYSQL 中 select 可以顯示 不是group by 中的分組字段, 可以是任意的數(shù)據(jù)列,具體數(shù)據(jù)顯示的是分組后的第一行數(shù)據(jù)
    在ORACLE中 select 是嚴格的 只能顯示group by 中的字段。
    同樣效果的兩行sql --- 讓自己注意提高自己的使用靈活性
    1. select a.aid AAid,nvl(b.cot,0) countline from po_draft_order a,(select AID_DRAFT_ORDER_PO BAID,count(*) cot from  po_draft_line group by AID_DRAFT_ORDER_PO) b WHERE A.AID = B.BAID(+);
    2. select a.aid, (select count(*) from po_draft_line where AID_DRAFT_ORDER_PO = a.aid ) c from po_draft_order a;
    -------------------------------------------------------------------------------------------------------------------------------
    oracle 分級
    rank()/dense_rank()  over(partition by ... order by ...)  加強對分組排序之后的數(shù)據(jù)的控制力。
    over:  over(...)
    partition by :  相當于group by
    order by e.sal desc:  按工資從高到低排序(使用rank()/dense_rank() 時,必須要帶order by否則非法)
    rank()/dense_rank():  分級
    整個語句的意思就是:在按部門劃分的基礎上,按工資從高到低對雇員進行分級,“級別”由從小到大的數(shù)字表示(最小值一定為1)。 
    那么rank()和dense_rank()有什么區(qū)別呢?
    rank():  跳躍排序,如果有兩個第一級時,接下來就是第三級。
    dense_rank():  連續(xù)排序,如果有兩個第一級時,接下來仍然是第二級。
    min()/max() over(partition by ...)  // 分組最大最小值
    lead()/lag() over(partition by order by) // 前后數(shù)據(jù)比較使用
    lead(列名,n,m):  當前記錄后面第n行記錄的<列名>的值,沒有則默認值為m;如果不帶參數(shù)n,m,則查找當前記錄后面第一行的記錄<列名>的值,沒有則默認值為null。
    lag(列名,n,m):  當前記錄前面第n行記錄的<列名>的值,沒有則默認值為m;如果不帶參數(shù)n,m,則查找當前記錄前面第一行的記錄<列名>的值,沒有則默認值為null。
    主要是各個函數(shù)和over的配合使用。
    -----------------------------------------------------------------------------------------------------------------------------------------------------
    Oracle 的集合運算
    UNION 用來合并結果集 要求返回字段是一樣的。
    JOIN 用來合并字段。
    并集
    UNION ALL, FULL JOIN -- 重復出現(xiàn)
    UNION, INNER JOIN minus -- 一次出現(xiàn)
    交集
    intersect
    差集
    minus 
    笛卡爾積
    CROSS JOIN
    ------------------------------------------------------------------------------------------------------------------------------
    INNER JOIN oracle 特殊的寫法 不知道在sqlserver 是否支持。
    SELECT
    *
    FROM (
      SO_WEC_SODL_DESPATCH_HEADER AS SO_WEC_SODL_DESPATCH_HEADER_1
        INNER JOIN (
          (
            SO_WARRANTY_ENTITLEMENT WET_1
            INNER JOIN (SO_WARRANTY_ENTITLEMENT INNER JOIN SO_WEC_SODL
            ON SO_WARRANTY_ENTITLEMENT.AID = SO_WEC_SODL.AID_WARRANTY_ENTITLEMENT_SO
            ) ON (WET_1.AID_COMPANY = SO_WARRANTY_ENTITLEMENT.AID_COMPANY)
            AND (WET_1.SEQ_ITEM_NUM = SO_WARRANTY_ENTITLEMENT.PARENT_SEQ_ITEM)
            AND (WET_1.ITEM_LINE_NUM = SO_WARRANTY_ENTITLEMENT.PARENT_ITEM_NUM)
            AND (WET_1.SO_LINE_NUM = SO_WARRANTY_ENTITLEMENT.PARENT_SOLINE_NUM)
            AND (WET_1.SO_NUM = SO_WARRANTY_ENTITLEMENT.SO_NUM)
          )
          INNER JOIN SO_WEC_SODL AS SO_WEC_SODL_1 ON (SO_WEC_SODL.LINE_DELIVERY_NUMBER = SO_WEC_SODL_1.LINE_DELIVERY_NUMBER)
          AND (WET_1.AID = SO_WEC_SODL_1.AID_WARRANTY_ENTITLEMENT)
        ) ON SO_WEC_SODL_DESPATCH_HEADER_1.AID_WEC_SODL = SO_WEC_SODL_1.AID
    ) INNER JOIN SO_WEC_SODL_DESPATCH_HEADER ON SO_WEC_SODL.AID = SO_WEC_SODL_DESPATCH_HEADER.AID_WEC_SODL

    ===



    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 伊人久久亚洲综合影院首页| 国产91色综合久久免费分享| 亚洲一卡2卡3卡4卡乱码 在线 | 亚洲大成色www永久网站| 免费看www视频| 色一情一乱一伦一视频免费看| 亚洲高清最新av网站| 毛片免费在线观看网站| 黄网站色视频免费观看45分钟| jlzzjlzz亚洲乱熟在线播放| 免费特级黄毛片在线成人观看| 日本免费xxxx色视频| 久久国产乱子精品免费女| 男人和女人高潮免费网站| 亚洲国产区男人本色| 亚洲乱码中文论理电影| 亚洲国产精品lv| 亚洲第一视频在线观看免费| 全免费a级毛片免费**视频| 免费国产作爱视频网站| 57pao国产成视频免费播放| 国内精品免费在线观看| 丝袜捆绑调教视频免费区| 一道本不卡免费视频| 一个人看的www在线免费视频| 天天综合亚洲色在线精品| 亚洲欧好州第一的日产suv| 狠狠亚洲狠狠欧洲2019| 免费一级毛片在线播放| 免费人成视频在线观看不卡| 免费国产综合视频在线看| 99在线观看免费视频| 一区二区免费视频| 免费无遮挡无码永久视频| 久操免费在线观看| 一级毛片在线免费观看| 成人午夜免费福利视频| 亚洲中文字幕久久精品无码2021| 亚洲视屏在线观看| 亚洲av无码不卡久久| 自拍偷区亚洲国内自拍|