Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

̸SQL Server 2005ÖеÄT SQLÔöÇ¿E


ÐµĹØÏµÔËËã·û PIVOT/UNPIVOT/APPLY
1¡¢PIVOT
PIVOTÔËËã·û½«ÐÐÐýתΪÁУ¬²¢ÇÒ¿ÉÄÜͬʱִÐоۺϡ£Ê¹ÓÃPIVOTÔËËã·ûʱҪעÒâµÄÖØÒªÒ»µãÊÇ£¬ÐèҪΪËüÌṩһ¸ö²éѯ±í´ïʽ£¬±í´ïʽʹÓÃÊÓͼ¡¢ÅÉÉú±í»òÕßÊÇCTEÖ»·µ»ØËù¹Ø×¢µÄÁС£
2¡¢UNPIVOT
UNPIVOTÔËËã·ûÖ´ÐÐÓëPIVOTÔËËã·ûÏà·´µÄ²Ù×÷£»Ëû½«ÁÐÐýתΪÐÐÁË¡£
3¡¢APPLY
APPLY¹ØÏµÔËËã·ûÔÊÐíÄú¶ÔÍⲿ±íµÄÿ¸öÐе÷ÓÃÖ¸¶¨µÄ±íÖµº¯ÊýÒ»´Î¡£Äú¿ÉÒÔÔÚ²éѯµÄfrom×Ó¾äÖÐÖ¸¶¨APPLY£¬Æä·½Ê½ÓëʹÓÃJOIN¹ØÏµÔËËã·ûÀàËÆ¡£APPLY¾ßÓÐÁ½ÖÖÐÎʽ£ºCROSS APPLYºÍOUTER APPLY¡£
ÑÝʾ£º
USE demo
GO
CREATE TABLE orders
(
Customer VARCHAR(10) NOT NULL,
product VARCHAR(20) NOT NULL,
quantity INT NOT NULL
)
GO
INSERT orders VALUES('Mike', 'Bike',3)
INSERT orders VALUES('Mike','Chain',2)
INSERT orders VALUES('Mike','Bike',5)
INSERT orders VALUES('Lisa','Bike',3)
INSERT orders VALUES('Lisa','Chain',3)
INSERT orders VALUES('Lisa','Chain',4)
INSERT orders VALUES('Lisa','Bike',2)
SELECT * from orders
SELECT * from orders
PIVOT (SUM(quantity) FOR product IN ([Bike],[Chain])) AS a
USE demo
GO
CREATE TABLE SALES1
(
[Year] INT,
Quarter CHAR(2),
Amount FLOAT
)
GO
INSERT INTO SALES1 VALUES (2001, 'Q1', 80)
INSERT INTO SALES1 VALUES (2001, 'Q2', 70)
INSERT INTO SALES1 VALUES (2001, 'Q3', 55)
INSERT INTO SALES1 VALUES (2001, 'Q3', 110)
INSERT INTO SALES1 VALUES (2001, 'Q4', 90)
INSERT INTO SALES1 VALUES (2002, 'Q1', 200)
INSERT INTO SALES1 VALUES (2002, 'Q2', 150)
INSERT INTO SALES1 VALUES (2002, 'Q2', 40)
INSERT INTO SALES1 VALUES (2002, 'Q2', 60)
INSERT INTO SALES1 VALUES (2002, 'Q3', 120)
INSERT INTO SALES1 VALUES (2002, 'Q3', 110)
INSERT INTO SALES1 VALUES (2002, 'Q4', 180)
GO
SELECT * from SALES1
PIVOT
(SUM (Amount) --ʹÓÃSUM¾ÛºÏÊýÁ¿ÁÐ
FOR [Quarter] --PIVOT Quarter ÁÐ
IN (Q1, Q2, Q3, Q4)) --ʹÓü¾½Ú
AS P
GO
SELECT * INTO temp1 from orders
PIVOT (sum(quantity) FOR product IN ([Bike],[Chain])) AS a
SELECT * from temp1
SELECT customer, product,quantity
from temp1
UNPIVOT(quantity FOR product IN ([Bike],[Chain])) AS a
----------------


Ïà¹ØÎĵµ£º

º½¿Õ¹«Ë¾¹ÜÀíϵͳ(VC++ ÓëSQL 2005)

ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
      ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......

SQL Server Ë÷Òý·ÖÎö

SQL ServerʹÓñê×¼B-Ê÷´æ´¢ÐÅÏ¢¡£
Ë÷ÒýÖмä²ã´ÎÊýÓɱíµÄÐÐÊýºÍË÷ÒýÐеĴóС¾ö¶¨¡£ÈôʹÓÃÒ»¸ö½Ï³¤µÄ¼ü£¨key£©À´´´½¨Ë÷Òý£¬Ò»¸ö·ÖÒ³ÉϾÍÖ»ÄÜÈÝÄɽÏÉÙµÄÌõÄ¿£¬¼´Ê÷µÄ²ã´Î¿ÉÄÜ»áÔö¶à¡£
¶ÔÓÚÈκÎË÷Òý£¨ÎÞÂÛÊǾۼ¯»ò·Ç¾Û¼¯Ë÷Òý£©£¬Ë÷ÒýB-Ê÷µÄÒ¶¼¶½Úµã°üº¬Ë÷ÒýµÄ¼üÖµ£¬²¢¶¼°´ÕÕ¼üµÄ˳ÐòÅÅÁС£¾Û¼¯ºÍ·Ç¾Û¼¯Ë÷ÒýµÄÇø±ðÔÚÓÚÒ¶¼¶½Úµ ......

SQLº£Á¿Êý¾Ý²éѯµÄÓÅ»¯ÊÖ¶Î

Ò»¡¢ÒòÇéÖÆÒË£¬½¨Á¢“Êʵ±”µÄË÷Òý
½¨Á¢“Êʵ±”µÄË÷ÒýÊÇʵÏÖ²éѯÓÅ»¯µÄÊ×ҪǰÌá¡£
Ë÷Òý£¨index£©Êdzý±íÖ®ÍâÁíÒ»ÖØÒªµÄ¡¢Óû§¶¨ÒåµÄ´æ´¢ÔÚÎïÀí½éÖÊÉϵÄÊý¾Ý½á¹¹¡£µ±¸ù¾ÝË÷ÒýÂëµÄÖµËÑË÷Êý¾Ýʱ£¬Ë÷ÒýÌṩÁ˶ÔÊý¾ÝµÄ¿ìËÙ·ÃÎÊ¡£ÊÂʵÉÏ£¬Ã»ÓÐË÷Òý,Êý¾Ý¿âÒ²Äܸù¾ÝSELECTÓï¾ä³É¹¦µØ¼ìË÷µ½½á¹û£¬µ«Ëæ×űí±ä ......

SQL Server2000Êý¾Ý¿â·ÖÀëÓ븽¼Ó

Èç¹ûÄúÊý¾Ý¿âϵͳ°²×°ÔÚϵͳÅÌ£¨±ÈÈç C ÅÌ£©£¬ÓÉÓÚ C ÅÌÈÝÒ×Êܲ¡¶¾ÇÖº¦£¬ÄúÒ²ÐíÏ£ÍûÄúµÄÊý¾Ý´æ·ÅÔÚ·ÇϵͳÅÌ£¨±ÈÈç D ÅÌ£©£¬Òª×öµÄÕâµãºÜ¼òµ¥£¬Äú²¢²»ÐèÒªÖØ×°Êý¾Ý¿â£¬Ö»Òª°ÑÊý¾Ý“·ÖÀ딣¬È»ºó½«Ïà¹ØÎļþÒÆ¶¯µ½ D Å̵Äij¸öĿ¼£¬½Ó×Å“¸½¼Ó”Êý¾Ý¿â¼´¿É¡£
SQL Server 2000ÔÊÐí·ÖÀëÊý¾Ý¿âµÄÊý¾ÝºÍÊÂÎñÈ ......

SQL SERVER Êý¾Ý¿âÁ´½Ó·þÎñÆ÷×ܽá


SQL SERVER Êý¾Ý¿âÁ´½Ó·þÎñÆ÷×ܽá
ǰ¶Îʱ¼ä£¬¹«Ë¾µÄÏîÄ¿¿ª·¢Óõ½C/S¡¢B/SÁ½Öּܹ¹¡£CS²¿·ÖÒòΪÊý¾ÝµÄ±£ÃÜÐԺͰ²È«ÐÔ£¬²ÉÓÃSQL SERVER 2000£¨ºóÀ´Ëæ×ÅÈí¼þ°æ±¾Éý¼¶£¬²ÉÓÃSQL Server 2005£©¾ÖÓòÍøÂç¡£B/S²¿·Ö²ÉÓÃOracle9.2Êý¾Ý¿â¡£Á½¸ö²¿·ÖÎïÀí¸ôÀ룬¶¨Ê±Í¨¹ýÍøÂçÇл»Æ÷½øÐÐÍøÂçÇл»ÒÔÍê³ÉÊý¾Ý½»»»¡£
    ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ