|
|
¿Àº´ÅÃ(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 |
|
|
|
|
|