]]>PostgreSQL ?Oracle 相异? Q{Q?/title>http://www.aygfsteel.com/kingeleven/articles/172487.htmlvvvvThu, 03 Jan 2008 06:56:00 GMThttp://www.aygfsteel.com/kingeleven/articles/172487.htmlhttp://www.aygfsteel.com/kingeleven/comments/172487.htmlhttp://www.aygfsteel.com/kingeleven/articles/172487.html#Feedback0http://www.aygfsteel.com/kingeleven/comments/commentRss/172487.htmlhttp://www.aygfsteel.com/kingeleven/services/trackbacks/172487.html
ORACLE ?PostgreSQL 相异?/strong>
NO
问题?/strong>
Oracle
PostgreSQL
1
1+1
或?br />
CREATE VIEW dual AS SELECT 'X'::VARCHAR(1) AS DUMMY
?SELECT 1+1 FROM DUAL
2
DUAL
DUAL
3
AGE_TYPE
WHERE ROWNUM<=5
*
FROM
AGE_TYPE
WHERE CODE IS NOT NULL
ORDER BY CODE DESC
LIMIT 5 OFFSET 0
4
A.COL2(+) ='A_VALUE2'
A.COL2='A_VALUE2' WHERE (A.COL1=0 OR A.COL1 IS NULL) AND (A.COL2='A_VALUE2' OR A.COL2 IS NULL)
5
A_COL1, A.COL2A_COL2
FROM A_TABLE A
A.COL2 AS A_COL2
FROM A_TABLE A
6
NVL(SUM(VALUE21),0) FS_VALUE2
FROMFIELD_SUM
COALESCE(SUM(VALUE21),0) AS FS_VALUE2
FROMFIELD_SUM
7
?/font>?/font>
8
TEST
B
9
旉
问题
SELECT TO_DATE('20010203','YYYY-MM-DD') AS DAY
FROM DUAL
10
SELECT NULL||'-' ||NULL AS VALUES1
FROM DUAL
11
ACCESS_INFO_SUM1_V
WHERE YEARCODE BETWEEN '200305' AND '200505'
GROUP BY SCCODE
ROUND(AVG(AIV.BASICCNT)) AS BASICCNT
FROM (SELECT SUM(BASICCNT1)AS BASICCNT FROMACCESS_INFO_SUM1_V WHERE YEARCODE BETWEEN '200305' AND '200505' GROUP BY sccode ) AIV
?/font> 'SELECT date(substr(text($1 + interval(''1 month'')),1,7)||''-01'')-1' LANGUAGE 'sql';
18
?/font> 'SELECT to_number((date($1)- date($2)),''999999999'')/31' LANGUAGE 'sql';
19
?/font> 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";