¿Àº´ÅÃ(siff7)    2012/10/31 15:51:05   
ÀÌ·±¼³¸í ¾Ö¸ÅÇÏÁÒ~

table desc
------------
idx int NOt NULL autoincrement primary key
clm1 varchar(10) Null
clm2 varchar(10) Null

À§¿Í °°ÀÌ idx, clm1, clm2 ¶ó´Â Ä÷³À» °¡Áö°í ÀÖ´Â Å×À̺íÀÌ ÀÖÀ»¶§


page = 1; // ÇöÀç ÆäÀÌÁö
pagesize = 10; // ÆäÀÌÁö´ç ±Û °¹¼ö

select top #(pagesize) * from table where idx not in (select top #((page -1) * pagesize) idx from table order by idx desc) order by idx desc

#( ) ¾È¿¡ °¨½ÎÁ®ÀÖ´Â°Ç º¯¼ö·Î À¯µ¿ÀûÀΠó¸®.
2  0  0 
  ¿Àº´ÅÃ(siff7)    2012/10/31 15:51:10   
º¯¼ö´Â À§ Á¤ÀÇÇسõÀº°Í¿¡ µû¶ó ¼³¸í
¼­ºêÄõ¸®¿¡¼­ idx°ª¸¸ top (page-1)*pagesize °ª¸¸Å­ °¡Á®¿È
°¡Á®¿Â °ªÀ» not in Äõ¸®·Î Á¦¿ÜÇÏ°í, ±× °ªÀ» ´Ù½Ã ¸ÞÀÎÄõ¸®ÀÇ top pagesize ¸¸Å­ ºÒ·¯¿È
À§ »óȲÀ» º¸ÀÚ¸é
page °¡ 1 ÀÌ°í pagesize 10 ÀÌ´Ù.
¼­ºêÄõ¸®ÀÇ °ªÀº select top 0 idx from table order by idx desc°¡ µÇ±â ¶§¹®¿¡ ¾Æ¹«°ªµµ °¡Á®¿ÀÁö ¾Ê´Â´Ù.(1¹ø ÆäÀÌÁö À̱⠶§¹®¿¡ ¸ðµç ±ÛÀ» ºÒ·¯¿È)
where idx not in ¿¡¼­ ¾Æ¹«°Íµµ °É·¯³»Áú ¾Ê±â ¶§¹®¿¡ ¸ÞÀÎÄõ¸®ÀÇ top 10 ¿¡ ÀÇÇØ Àüü µ¥ÀÌÅÍÀÇ »óÀ§ 10°ÇÀ» °¡Á®¿Â´Ù.
2  0  0 
  ¿Àº´ÅÃ(siff7)    2012/10/31 15:51:20   

¸¸¾à page °¡ 2ÀÏ°æ¿ì
¼­ºêÄõ¸®ÀÇ °ªÀº select top 10 idx from table order by idx desc°¡ µÇ±â ¶§¹®¿¡ Àüü µ¥ÀÌÅÍÀÇ »óÀ§ 10°ÇÀ» °¡Á®¿Â´Ù.
where idx not in ¼­ºêÄõ·Î ÀÎÇØ ´ã°ÜÁø »óÀ§ 10°ÇÀ» Á¦¿ÜÇÑ ³ª¸ÓÁö µ¥ÀÌÅÍ¿¡¼­ ¸ÞÀÎÄõ¸®ÀÇ top 10 ¿¡ ÀÇÇØ 10°ÇÀ» °¡Á®¿Â´Ù
»óÀ§ 10°ÇÀÌ Á¦¿ÜµÇ°í ±×´ÙÀ½ 10°ÇÀÌ °¡Á®¿Â°Å±â ¶§¹®¿¡ µÎ¹ø° ÆäÀÌÁö ÀÌ´Ù.

ÀÌ Äõ¸®ÀÇ ´ÜÁ¡Àº
ÆäÀÌÁö¸¦ µÚ·Î ³Ñ±æ¼ö·Ï µ¥ÀÌÅÍ ¸®µù ¼Óµµ°¡ ´À·ÁÁø´Ù´ÂÁ¡ ¤»

¼­ºêÄõ¸®¿¡¼­ top (page-1)*10 À» Çϱ⠋š¹®¿¡ page °¡ 40 À̸é (40-1)*10 = 390°³ÀÇ ÀڷḦ Àб⠶§¹®ÀÌ´Ù.
±×¸®°í Not in where ÀýÀÌ ¼­ºê Äõ¸® ¿¡¼­ °¡Á®¿Â °ªÀ» °¡Áö°í Çѹø´õ µ¹±â ¶§¹®¿¡ ¹«°Ì´Ù.
2  0  0