SQL ÐÐÊýµÄÑ¡Ôñ
OracleÊý¾Ý¿â
SELECT
*
from
(
SELECT
ROWNUM AS NO_ROW
,row_.*
from
(
SELECT
*
from
PLAN_TEMP
) row_
)
WHERE
NO_ROW BETWEEN 1 AND 12
PostgreSQL
select * from table limit 1 offset 12;
MySQL
select * from table limit 1, 12
SQL Server
select top 12 * from table
·ÖÒ³£º
1.Oracle
SELECT
*
from (
SELECT
row_.*, rownum rownum_
from
(...... ) row_
WHERE
rownum <= ?)
WHERE rownum_ > ?
ÏȰ´²éѯÌõ¼þ²éѯ³ö´Ó0 µ½Ò³Î´µÄ¼Ç¼.È»ºóÔÙÈ¡³ö´ÓÒ³¿ªÊ¼µ½Ò³Î´µÄ¼Ç¼.(¾Ý˵ÊÇЧÂÊ×î¸ßµÄ£º£©)
2. SQL Server
i:select top [pagesize] *
from table
where
id not in (
select top [pagesize*(currentpage-1)] id
from table
[²éѯÌõ¼þ] order by id )
and [²éѯÌõ¼þ] order by id
ÏȰ´²éѯÌõ¼þÅųý pagesize*[pagesize* (currentpage-1)]ÒÔǰµÄ¼Í¼¡£&&ÔÙ°´²éѯÌõ¼þ°ÑËûÒÔºóµÄ¼Ç¼ top[pagesize] ³ö À´.
ii: select top PageSize *
from TableName
where id > (
select max(id)
from
(select top startRecord-1 id
from TableName
[²éѯÌõ¼þ]
Ïà¹ØÎĵµ£º
ͨÓñí±í´ïʽ Common Table Expressions
ͨÓñí±í´ïʽ£¨CTE£©ÊÇÒ»¸ö¿ÉÒÔÓɶ¨ÒåÓï¾äÒýÓõÄÁÙʱ±íÃüÃûµÄ½á¹û¼¯¡£ÔÚËûÃǵļòµ¥ÐÎʽÖУ¬Äú¿ÉÒÔ½«CTEÊÓΪÀàËÆÓÚÊÓͼºÍÅÉÉú±í»ìºÏ¹¦ÄܵĸĽø°æ±¾¡£ÔÚ²éѯµÄfrom×Ó¾äÖÐÒýÓÃCTEµÄ·½Ê½ÀàËÆÓÚÒýÓÃÅÉÉú±íºÍÊÓͼµÄ·½Ê½¡£Ö»Ð붨ÒåCTEÒ»´Î£¬¼´¿ÉÔÚ²éѯÖжà´ÎÒýÓÃËü¡£ÔÚCTEµÄ¶¨ÒåÖУ¬¿ÉÒÔÒ ......
SQL SERVER Êý¾Ý¿âÁ´½Ó·þÎñÆ÷×ܽá
ǰ¶Îʱ¼ä£¬¹«Ë¾µÄÏîÄ¿¿ª·¢Óõ½C/S¡¢B/SÁ½Öּܹ¹¡£CS²¿·ÖÒòΪÊý¾ÝµÄ±£ÃÜÐԺͰ²È«ÐÔ£¬²ÉÓÃSQL SERVER 2000£¨ºóÀ´Ëæ×ÅÈí¼þ°æ±¾Éý¼¶£¬²ÉÓÃSQL Server 2005£©¾ÖÓòÍøÂç¡£B/S²¿·Ö²ÉÓÃOracle9.2Êý¾Ý¿â¡£Á½¸ö²¿·ÖÎïÀí¸ôÀ룬¶¨Ê±Í¨¹ýÍøÂçÇл»Æ÷½øÐÐÍøÂçÇл»ÒÔÍê³ÉÊý¾Ý½»»»¡£
......
ÐµĹØÏµÔËËã·û PIVOT/UNPIVOT/APPLY
1¡¢PIVOT
PIVOTÔËËã·û½«ÐÐÐýתΪÁУ¬²¢ÇÒ¿ÉÄÜͬʱִÐоۺϡ£Ê¹ÓÃPIVOTÔËËã·ûʱҪעÒâµÄÖØÒªÒ»µãÊÇ£¬ÐèҪΪËüÌṩһ¸ö²éѯ±í´ïʽ£¬±í´ïʽʹÓÃÊÓͼ¡¢ÅÉÉú±í»òÕßÊÇCTEÖ»·µ»ØËù¹Ø×¢µÄÁС£
2¡¢UNPIVOT
UNPIVOTÔËËã·ûÖ´ÐÐÓëPIVOTÔËËã·ûÏà·´µÄ²Ù×÷£»Ëû½«ÁÐÐýתΪÐÐÁË¡£
3¡¢APPLY
......