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

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

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

    世界因你而精彩___vv

    要么忙著生存,要么趕著去死!人總是要做點什么的!

     

    PostgreSQL 與 Oracle 相異點 (轉(zhuǎn))

    ORACLE 與 PostgreSQL 相異點
    NO 問題點 Oracle PostgreSQL
    1 DUAL SELECT 1+1 FROM DUAL SELECT  1+1
    或者
    CREATE VIEW dual AS
          SELECT 'X'::VARCHAR(1) AS DUMMY
    再 SELECT 1+1 FROM DUAL
    2 NEXTVAL SELECT A_TABLE_SEQUENCE.NEXTVAL
    FROM   DUAL
    SELECT NEXTVAL('A_TABLE_SEQUENCE')
    FROM   DUAL
    3 ROWNUM ①SELECT *
    FROM  AGE_TYPE
    WHERE ROWNUM<=5
    ①SELECT *
    FROM AGE_TYPE
    LIMIT 5 OFFSET 0
    ②SELECT *
    FROM AGE_TYPE
    WHERE CODE IS NOT NULL
    AND ROWNUM<=5
    ORDER BY CODE DESC
    ②SELECT  *
    FROM
    AGE_TYPE
    WHERE CODE IS NOT NULL
    ORDER BY CODE DESC
    LIMIT 5 OFFSET 0
    4 (+) ①SELECT *
    FROM A_TABLE A , B_TABLE B
    WHERE A.ID(+)=B.ID
    ①SELECT *
    FROM A_TABLE A
    RIGHT OUTER JOIN
    B_TABLE B
    ON A.ID=B.ID
    ②SELECT *
    FROM A_TABLE A , B_TABLE B
    WHERE A.ID(+)=B.ID
    AND A.COL1='COL1_VALUE'
    ②SELECT *
    FROM A_TABLE A
    RIGHT OUTER JOIN B_TABLE B
    ON A.ID=B.ID AND A.COL1='COL1_VALUE'
    ③SELECT *
    FROM A_TABLE A, B_TABLE B,C_TABLE C,D_TABLE D
    WHERE
    A.ID=B.ID(+) AND
    A.ID=C.ID(+) AND
    A.COL1=D.COL1
    ③SELECT *
    FROM (A_TABLE A
    LEFT OUTER JOIN B_TABLE B
    ON A.ID=B.ID)
    LEFT OUTER JOIN C_TABLE C
    ON A.ID=C.ID,D_TABLE D
    WHERE A.COL1=D.COL1
    ④!!!
    SELECT *
    FROM A_TABLE A
    WHERE A.COL1(+)=0 AND
     A.COL2(+) ='A_VALUE2'
    ④!!!
    SELECT *
    FROM A_TABLE A
    WHERE A.COL1=0 AND
     A.COL2='A_VALUE2'
    WHERE (A.COL1=0 OR A.COL1 IS NULL) AND
     (A.COL2='A_VALUE2' OR A.COL2 IS NULL)
    5 AS SELECT A.COL1  A_COL1,
               A.COL2  A_COL2
    FROM A_TABLE A
    SELECT A.COL1 AS A_COL1,
               A.COL2 AS A_COL2
    FROM A_TABLE A
    6 NVL SELECT NVL(SUM(VALUE11),0) FS_VALUE1,
                NVL(SUM(VALUE21),0) FS_VALUE2
    FROM   FIELD_SUM 
    SELECT COALESCE(SUM(VALUE11),0) AS FS_VALUE1,
               COALESCE(SUM(VALUE21),0) AS FS_VALUE2
    FROM   FIELD_SUM 
    7 TO_
    NUMBER
    SELECT COL1
    FROM A_TABLE
    ORDER BY TO_NUMBER(COL1)
    SELECT COL1
    FROM A_TABLE
    ORDER BY TO_NUMBER(COL1,999999)
    [注:'999999' ---- 6位數(shù)
    COL1字段的度]
    8 DECODE SELECT DECODE(ENDFLAG,'1','A','B') ENDFLAG
    FROM  TEST
    SELECT
    (CASE ENDFLAG
    WHEN '1' THEN 'A'
    ELSE '
    B' END) AS ENDFLAG
    FROM TEST
    9 時間
    問題
    UPDATE A_TABLE
    SET ENTREDATE=SYSDATE
    UPDATE A_TABLE
    SET ENTREDATE=TO_TIMESTAMP(CURRENT_TIMESTAMP,'YYYY-MM-DD HH24:MI:SS')
    或者
    UPDATE A_TABLE
    SET ENTREDATE=CURRENT_TIMESTAMP
    SELECT TO_DATE('20010203','YYYY-MM-DD') AS DAY
    FROM DUAL
    SELECT TO_DATE('20010203','YYYYMMDD') AS DAY
    FROM DUAL

    SELECT TO_DATE('20010203','YYYY-MM-DD') AS DAY
    FROM DUAL
    SELECT TO_DATE(SYSDATE,'YYYY-MM-DD') AS DAY
    FROM DUAL
    SELECT TO_DATE(CURRENT_DATE,'YYYY-MM-DD') AS DAY
    FROM DUAL
    SELECT TO_DATE(SYSDATE,'YYYY/MM/DD') AS DAY
    FROM DUAL
    SELECT TO_DATE(CURRENT_DATE,'YYYY/MM/DD') AS DAY
    FROM DUAL
    10 || SELECT NULL||'-'||NULL AS VALUES1
    FROM DUAL
    SELECT COALESCE(NULL,'')||'-'||COALESCE(NULL,'') AS VALUES1
    FROM DUAL
    SELECT NULL||'-' ||NULL AS VALUES1
    FROM DUAL
    11 aggregate SELECT ROUND(AVG(SUM(BASICCNT1))) BASICCNT
    FROM   ACCESS_INFO_SUM1_V
    WHERE YEARCODE BETWEEN '200305' AND '200505'
    GROUP BY SCCODE
    SELECT  ROUND(AVG(AIV.BASICCNT)) AS BASICCNT
    FROM
        (SELECT SUM(BASICCNT1)      AS BASICCNT
        FROM   ACCESS_INFO_SUM1_V
        WHERE YEARCODE BETWEEN '200305' AND '200505'
        GROUP BY sccode
         ) AIV
    12 「"」 ①SELECT LENGTH('') AS VALUE1 FROM DUAL
    [Result]VALUE1=NULL
    ①SELECT LENGTH('') AS VALUE1 FROM DUAL
    [Result]VALUE1=0
    ②SELECT TO_DATE('','YYYYMMDD') AS VALUE2
    FROM DUAL
    [Result]VALUE2=NULL
    ②SELECT TO_DATE('','YYYYMMDD') AS VALUE2
    FROM DUAL
    [Result]VALUE2=0001-01-01 BC
    ③SELECT TO_NUMBER('',1) AS VALUE3 FROM DUAL
    [Result]VALUE3=NULL
    ③SELECT TO_NUMBER('',1) AS VALUE3 FROM DUAL
    [Result]不能
    執(zhí)
    ④INSERT INTO TEST(VALUE4)VALUES('')
    [Result]VALUE4=NULL (注:VALUE3字段
    數(shù)型)
    ④INSERT INTO TEST(VALUE4)VALUES('')
    [Result]VALUE4=0
     (注:VALUE4字段
    數(shù)型)
    ⑤INSERT INTO TEST(VALUE5)VALUES('')
    [Result]VALUE5=NULL (注:VALUE5字段
    字符型)
    ⑤INSERT INTO TEST(VALUE5)VALUES('')
    [Result]VALUE5=''
     (注:VALUE5字段
    字符型,結(jié)果為長度為零的字符串)
    ⑥INSERT INTO TEST(VALUE6)VALUES(TO_DATE('','YYYYMMDD'))
    [Result]VALUE6=NULL (注:VALUE6字段
    為時間類型)
    ⑥INSERT INTO TEST(VALUE6)VALUES(TO_DATE('','YYYYMMDD'))
    [Result]VALUE6=0001-01-01 BC
     (注:VALUE7字段
    為時間類型)
    13 CEIL SELECT CEIL(SYSDATE - TO_DATE('20051027 14:56:10','YYYYMMDD HH24:MI:SS')) AS DAYS
    FROM DUAL
    SELECT
    EXTRACT(DAY FROM (TO_TIMESTAMP(CURRENT_TIMESTAMP,'YYYY-MM-DD-HH24-MI-SS') -TO_TIMESTAMP('2005-10-27 14:56:10','YYYY-MM-DD-HH24-MI-SS') ))+1 AS DAYS
    FROM DUAL
    14 NULLIF 無NULLIF函數(shù) SELECT NULLIF(VALUE1,VALUE2) AS COL1 FROM DUAL
    [注]當VALUE1=VALUE2
    時,COL1=NULL
    15 CONCAT CONCAT(CHAR,CHAR) 創(chuàng)建函數(shù)來解決
    CREATE FUNCTION CONCAT(CHAR,CHAR)
    RETURNS CHAR AS
            'SELECT $1 || $2' LANGUAGE 'sql';
    16 ADD_
    MONTHS
    add_months(date, int) 創(chuàng)建函數(shù)來解決
    CREATE FUNCTION add_months(date, int)
    RETURNS date AS
    'SELECT ($1 + ( $2::text || ''months'')::interval)::date;'
    LANGUAGE 'sql'
    17 LAST
    _DAY
    LAST_DAY(DATE) 創(chuàng)建函數(shù)來解決
    CREATE FUNCTION LAST_DAY(DATE)
    RETURNS DATE AS
            'SELECT date(substr(text($1 +
                    interval(''1 month'')),1,7)||''-01'')-1'
            LANGUAGE 'sql';
    18 MONTHS
    _BETWEEN
    MONTH_BETWEEN(DATA,DATA) 創(chuàng)建函數(shù)來解決
    CREATE FUNCTION MONTH_BETWEEN(DATA,DATA)
    RETURNS NUMERIC AS
            'SELECT to_number((date($1)-
                               date($2)),''999999999'')/31'
            LANGUAGE 'sql';
    19 GRE~
    ATEST
    GREATEST (LEAST) 創(chuàng)建函數(shù)來解決
    CREATE OR REPLACE FUNCTION
       GREATEST(TEXT[]) RETURNS TEXT AS '
    DECLARE
       ARRY ALIAS FOR $1;
       GREATEST TEXT;
    BEGIN
       GREATEST := ARRY[1];
       FOR I IN 1 .. ARRAY_UPPER(ARRY,1) LOOP
          IF ARRY[I] > GREATEST THEN
            GREATEST := ARRY[I];
          END IF;
       END LOOP;
       RETURN GREATEST;
    END;
    ' LANGUAGE 'PLPGSQL';

    SELECT GREATEST( ARRAY['HARRY','HARRIOT','HAROLD'])
    AS "Greatest";
    20 BITAND BITAND(int,int) SELECT 値 & 値;
    21 子條件   在FROM子條件中字段須有列名,
    處理方法用AS +別名
    22 MINUS MINUS 以EXCEPT來替代
    23 BIN_
    TO_
    NUM
    SELECT BIN_TO_NUM(1,0,1,0) AS VALUE1 FROM DUAL SELECT CAST(B'1010' AS INTEGER) AS VALUE1


    要么忙著生存,要么趕著去死!人總是要做點什么的!

    posted on 2008-01-03 14:56 vv 閱讀(906) 評論(0)  編輯  收藏 所屬分類: DB


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


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(2)

    隨筆分類(4)

    隨筆檔案(7)

    文章分類(10)

    文章檔案(11)

    相冊

    最新隨筆

    搜索

    最新評論

    • 1.?re: 過濾頁面中沒有用到的圖片[未登錄]
    • 在非洲,瞪羚每天早上醒來時,他知道自己必須跑的比最快的獅子還快,否則就會被吃掉.獅子每天早上醒來時,他知道自己必須追上跑得最慢的瞪羚,否則就會被餓死.不管你是獅子還是瞪羚,當太陽升起時,你最好開始奔跑
    • --Eleven

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一个人看的在线免费视频| 色妞www精品视频免费看| 一级毛片不卡片免费观看| 国产日产亚洲系列最新| 久久久久久久久免费看无码| 久久久无码精品亚洲日韩按摩| 日本免费一区二区久久人人澡| 成人免费午夜无码视频| 国产亚洲一区二区三区在线不卡| jizz日本免费| 欧美男同gv免费网站观看 | 久久WWW色情成人免费观看| 亚洲人成人77777网站不卡 | 亚洲午夜精品在线| 中文毛片无遮挡高潮免费| 亚洲熟妇无码一区二区三区| 亚洲精品天堂成人片?V在线播放| 久久亚洲精品无码网站| 亚洲精品国产电影| 久久国产精品国产自线拍免费| 日韩视频免费在线| 特黄aa级毛片免费视频播放| 怡红院亚洲怡红院首页| 亚洲精品国产高清在线观看| 亚洲精品在线视频| 99久久99热精品免费观看国产| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲校园春色小说| 免费无码一区二区三区蜜桃大| 日韩在线观看免费| 免费看片A级毛片免费看| 免费很黄无遮挡的视频毛片| 亚洲成av人片在线观看无码不卡| 成年人免费的视频| 污污视频网站免费观看| 内射少妇36P亚洲区| 国产国产人免费视频成69大陆 | 亚洲欧美不卡高清在线| 无码乱肉视频免费大全合集| 亚洲av女电影网| 色www永久免费网站|