oracle·ÖÎöº¯Êýrow_number() over()ʹÓÃ
row_number() OVER (PARTITION BY COL1 ORDER BY COL2) ±íʾ¸ù¾ÝCOL1·Ö×飬ÔÚ·Ö×éÄÚ²¿¸ù¾Ý COL2ÅÅÐò£¬¶ø´Ëº¯Êý¼ÆËãµÄÖµ¾Í±íʾÿ×éÄÚ²¿ÅÅÐòºóµÄ˳Ðò±àºÅ£¨×éÄÚÁ¬ÐøµÄΨһµÄ).
ÓërownumµÄÇø±ðÔÚÓÚ£ºÊ¹ÓÃrownum½øÐÐÅÅÐòµÄʱºòÊÇÏȶԽá¹û¼¯¼ÓÈëαÁÐrownumÈ»ºóÔÙ½øÐÐÅÅÐò£¬¶ø´Ëº¯ÊýÔÚ°üº¬ÅÅÐò´Ó¾äºóÊÇÏÈÅÅÐòÔÙ¼ÆËãÐкÅÂ룮
row_number()ºÍrownum²î²»¶à£¬¹¦Äܸüǿһµã£¨¿ÉÒÔÔÚ¸÷¸ö·Ö×éÄÚ´Ó1¿ªÊ±ÅÅÐò£©£®
rank()ÊÇÌøÔ¾ÅÅÐò£¬ÓÐÁ½¸öµÚ¶þÃûʱ½ÓÏÂÀ´¾ÍÊǵÚËÄÃû£¨Í¬ÑùÊÇÔÚ¸÷¸ö·Ö×éÄÚ£©£®
dense_rank()lÊÇÁ¬ÐøÅÅÐò£¬ÓÐÁ½¸öµÚ¶þÃûʱÈÔÈ»¸ú×ŵÚÈýÃû¡£Ïà±ÈÖ®ÏÂrow_numberÊÇûÓÐÖØ¸´ÖµµÄ £®
lag£¨arg1,arg2,arg3):
arg1ÊÇ´ÓÆäËûÐзµ»ØµÄ±í´ïʽ
arg2ÊÇÏ£Íû¼ìË÷µÄµ±Ç°ÐзÖÇøµÄÆ«ÒÆÁ¿¡£ÊÇÒ»¸öÕýµÄÆ«ÒÆÁ¿£¬Ê±Ò»¸öÍù»Ø¼ìË÷ÒÔǰµÄÐеÄÊýÄ¿¡£
arg3ÊÇÔÚarg2±íʾµÄÊýÄ¿³¬³öÁË·Ö×éµÄ·¶Î§Ê±·µ»ØµÄÖµ¡£
¿´¼¸¸öSQLÓï¾ä:
Óï¾äÒ»:
select row_number() over(order by sale/cnt desc) as sort, sale/cnt
from (
select -60 as sale,3 as cnt from dual union
select 24 as sale,6 as cnt from dual union
select 50 as sale,5 as cnt from dual union
select -20 as sale,2 as cnt from dual union
select 40 as sale,8 as cnt from dual);
Ö´Ðнá¹û:
SORT SALE/CNT
---------- ----------
1 10
2 5
3 4
4 -10
5 -20
Óï¾ä¶þ:²éѯԱ¹¤
Ïà¹ØÎĵµ£º
ORACLE±¸·Ý²ßÂÔ(ORACLE BACKUP STRATEGY)
2007Äê11ÔÂ02ÈÕ ÐÇÆÚÎå 16:03
¸ÅÒª
1¡¢Á˽âʲôÊDZ¸·Ý
2¡¢Á˽ⱸ·ÝµÄÖØÒªÐÔ
3¡¢Àí½âÊý¾Ý¿âµÄÁ½ÖÖÔËÐз½Ê½
4¡¢Àí½â²»Í¬µÄ±¸·Ý·½Ê½¼°ÆäÇø±ð
5¡¢Á˽âÕýÈ·µÄ±¸·Ý²ßÂÔ¼°ÆäºÃ´¦
Ò»¡¢Á˽ⱸ·ÝµÄÖØÒªÐÔ
¿ÉÒÔ˵£¬´Ó¼ÆËã»úϵͳ³öÊÀµÄÄÇÌìÆð£¬¾ÍÓÐÁ˱¸·ÝÕâ¸ö¸ÅÄ ......
1¡¢¸ü¸Ä±íÃû/ÁÐÃû
Ê×ÏÈ£¬ÒªÒÔsysdbaÉí·ÝµÇ¼£¬²ÅÄܶԱíÃû/ÁÐÃû½øÐиü¸Ä£º
(1)µÇ½sqlplus£¬¿ÉÒÔÒÔnolog·½Ê½µÇ½£¬¹ØÓÚÕâÖֵǽ·½·¨£¬¿ÉÔÚsqlplusµÄͼ±êÉÏÓÒ¼ü£¬µã»÷ÊôÐÔ£¬ÔÚ"Ä¿±ê"À¸¸ÄΪ£º"D:\oracle\product\10.2.0\client_1\BIN\sqlplusw.exe /nolog"£¬È»ºóÔÙË«»÷sqlplusͼ±ê¾Í¿É½øÈë¡£
ÓÐʱoracle²¢²»ÔÚ±¾µØµçÄÔÉÏ£¬µ ......
Ò»¡¢²ÎÊýÉèÖÃ
--1¡¢ÉèÖÃA£º
db_block_size = 8192
db_domain = ''
db_file_multiblock_read_count = 16
db_name = bidata
db_recovery_file_dest = /export/home/app/oracle/oracle/product/10.2.0/db_1/flash_recovery_area
db_recovery_file_dest_size = 10737418240
dispatchers = '(PROTOCOL=TCP) (SERVICE=b ......
create table test1 as select 1 id,'create table test2(id number,name varchar2(200));insert into test2 values(1,''a'');' sqltext from dual
2 union all select 2,'truncate table test2;' from dual
3 union all select 3,'insert into test2 select rownum,dbms_random.string(''l'', ......