oracleÖоۺϺ¯ÊýRANKºÍdense_rankµÄʹÓÃ
¾ÛºÏº¯ÊýRANK ºÍ dense_rank Ö÷ÒªµÄ¹¦ÄÜÊǼÆËãÒ»×éÊýÖµÖеÄÅÅÐòÖµ¡£ ÔÚ9i°æ±¾Ö®Ç°£¬Ö»ÓзÖÎö¹¦ÄÜ£¨analytic £©£¬¼´´ÓÒ»¸ö²éѯ½á¹ûÖмÆËãÿһÐеÄÅÅÐòÖµ£¬ÊÇ»ùÓÚorder_by_clause×Ó¾äÖеÄvalue_exprsÖ¸¶¨×ֶεġ£ÆäÓ﷨Ϊ£º RANK ( ) OVER ( [query_partition_clause] order_by_clause ) ÔÚ9i°æ±¾ÐÂÔö¼ÓÁ˺ϼƹ¦ÄÜ£¨aggregate£©£¬¼´¶Ô¸ø¶¨µÄ²ÎÊýÖµÔÚÉ趨µÄÅÅÐò²éѯÖмÆËã³öÆäÅÅÐòÖµ¡£ÕâЩ²ÎÊý±ØÐëÊdz£Êý»ò³£Öµ±í´ïʽ£¬ÇÒ±ØÐëºÍORDER BY×Ó¾äÖеÄ×ֶθöÊý¡¢Î»Öá¢ÀàÐÍÍêȫһÖ¡£ÆäÓ﷨Ϊ£º RANK ( expr [, expr]... ) WITHIN GROUP ( ORDER BY expr [ DESC | ASC ] [NULLS { FIRST | LAST }] [, expr [ DESC | ASC ] [NULLS { FIRST | LAST }]]... ) Àý×Ó1£ºÓбíTableÄÚÈÝÈçÏ COL1 COL2 1 1 2 1 3 2 3 1 4 1 4 2 5 2 5 2 6 2 ·ÖÎö¹¦ÄÜ£ºÁгöCol2·Ö×éºó¸ù¾ÝCol1ÅÅÐò,²¢Éú³ÉÊý×ÖÁС£±È½ÏʵÓÃÓÚÔڳɼ¨±íÖвé³ö¸÷¿ÆÇ°¼¸ÃûµÄÐÅÏ¢¡£ SELECT a.*,RANK() OVER(PARTITION BY col2 ORDER BY col1) "Rank" from table a; ½á¹ûÈçÏ£º COL1 COL2 Rank 1 1 1 2 1 2 3 1 3 4 1 4 3 2 1 4 2 2 5 2 3 5 2 3 6 2 5 Àý×Ó2£º TABLE£ºA £¨¿ÆÄ¿£¬·ÖÊý£© Êýѧ£¬80 ÓïÎÄ£¬70 Êýѧ£¬90 Êýѧ£¬60 Êýѧ£¬100 ÓïÎÄ£¬88 ÓïÎÄ£¬65 ÓïÎÄ£¬77 ÏÖÔÚÎÒÏëÒªµÄ½á¹ûÊÇ£º£¨¼´ÏëҪÿÃÅ¿ÆÄ¿µÄǰ3ÃûµÄ·ÖÊý£© Êýѧ£¬100 Êýѧ£¬90 Êýѧ£¬80 ÓïÎÄ£¬88 ÓïÎÄ£¬77 ÓïÎÄ£¬70 ÄÇôÓï¾ä¾ÍÕâôд£º select * from (select rank() over(partition by ¿ÆÄ¿ order by ·ÖÊý desc) rk,a.* from a) t where t.rk<=3; Àý×Ó3£º ºÏ¼Æ¹¦ÄÜ£º¼ÆËã³öÊýÖµ(4,1)ÔÚOrade By Col1,Col2ÅÅÐòϵÄÅÅÐòÖµ£¬Ò²¾ÍÊÇcol1=4,col2=1ÔÚÅÅÐòÒÔºóµÄλÖà SELECT RANK(4,3) WITHIN GROUP (ORDER BY col1,col2) "Rank" from table; ½á¹ûÈçÏ£º Rank 4 dense_rankÓërank()Ó÷¨Ï൱£¬µ«ÊÇÓÐÒ»¸öÇø±ð£ºdence_rankÔÚ²¢ÁйØÏµÊÇ£¬Ïà¹ØµÈ¼¶²»»áÌø¹ý¡£rankÔòÌø¹ý ÀýÈ磺±í A B C a liu wang a jin shu a cai kai b yang du b lin ying b yao cai b yang 99 ÀýÈ磺µ±rankʱΪ£º select m.a,m.b,m.c,rank() over(partition by a order by b) liu from test3 m A B C LIU a cai kai 1 a jin shu 2 a liu wang 3 b lin ying 1 b yang du 2 b yang 99 2 b yao cai 4 ¶øÈç¹ûÓÃdense_rankʱΪ£º select m.a,m.b,m.c,dense_rank() over(partition by a order by b) liu from test3 m A B C LIU a cai kai 1 a jin shu 2 a liu wang 3 b lin ying 1 b yang
Ïà¹ØÎĵµ£º
±¾ÏµÁÐÎÄÕµ¼º½
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Ò»)--αÁÐROWNUMʹÓü¼ÇÉ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(¶þ)--±êÁ¿×Ó²éѯ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Èý)--PackageµÄÓŵã
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(ËÄ)--ÅúÁ¿´¦Àí
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Îå)--µ÷Óô洢¹ý³Ì·µ»Ø½á¹û¼¯
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Áù)- ......
±¾ÏµÁÐÎÄÕµ¼º½
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Ò»)--αÁÐROWNUMʹÓü¼ÇÉ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(¶þ)--±êÁ¿×Ó²éѯ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Èý)--PackageµÄÓŵã
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(ËÄ)--ÅúÁ¿´¦Àí
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Îå)--µ÷Óô洢¹ý³Ì·µ»Ø½á¹û¼¯
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Áù)- ......
MySQL Data Type
Oracle Data Type
BIGINT
NUMBER(19, 0)
BIT
RAW
BLOB
BLOB, RAW
CHAR
CHAR
DATE
DATE
DATETIME
DATE
DECIMAL
FLOAT (24)
DOUBLE
FLOAT (24)
DOUBLE PRECISION
FLOAT (24)
ENUM
VARCHAR2
FLOAT
FLOAT
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
LONGBLOB
BLOB, RAW
LONGTEX ......
ÓкܶàÓ¦ÓÃÏîÄ¿, ¸ÕÆð²½µÄʱºòÓÃMYSQLÊý¾Ý¿â»ù±¾ÉÏÄÜʵÏÖ¸÷ÖÖ¹¦ÄÜÐèÇó£¬Ëæ×ÅÓ¦ÓÃÓû§µÄÔö¶à£¬Êý¾ÝÁ¿µÄÔö¼Ó£¬MYSQL½¥½¥µØ³öÏÖ²»¿°ÖظºµÄÇé¿ö£º
Á¬½ÓºÜÂýÉõÖÁå´»ú£¬ÓÚÊǾÍÓаÑÊý¾Ý´ÓMYSQLǨµ½ORACLEµÄÐèÇó£¬Ó¦ÓóÌÐòÒ²ÒªÏàÓ¦×öһЩÐ޸ġ£±¾ÈË×ܽá³öÒÔϼ¸µã×¢ÒâÊÂÏϣÍû¶Ô´ó¼ÒÓÐËù°ïÖú¡£
1£® ×Ô¶¯Ôö³¤µÄÊý¾ÝÀàÐ ......
Ò» ÔÚOracleÖÐÁ¬½ÓÊý¾Ý¿â
public class Test1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
&nbs ......