Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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
----------------


Ïà¹ØÎĵµ£º

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

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

SQL³£ÓÃÓï¾ä


SQL³£ÓÃÓï¾ä
SQLÓï¾äÏÈǰдµÄʱºò£¬ºÜÈÝÒ×°ÑÒ»Ð©ÌØÊâµÄÓ÷¨Íü¼Ç£¬ÎÒÌØ´ËÕûÀíÁËÒ»ÏÂSQLÓï¾ä²Ù×÷¡£
Ò»¡¢»ù´¡
1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
CREATE DATABASE database-name
2¡¢ËµÃ÷£ºÉ¾³ýÊý¾Ý¿â
drop database dbname
3¡¢ËµÃ÷£º±¸·Ýsql server
--- ´´½¨ ±¸·ÝÊý¾ÝµÄ device
USE master
EXEC sp_addumpdevice 'disk ......

oracleÖбȽÏʵÓÃsqlÓï¾ä

-- ²é¿´ORACLE Êý¾Ý¿âÖб¾Óû§ÏµÄËùÓбí
SELECT table_name from user_tables;
-- ²é¿´ORACLE Êý¾Ý¿âÖÐËùÓÐÓû§ÏµÄËùÓбí
select user,table_name from all_tables;
-- ²é¿´ORACLE Êý¾Ý¿âÖб¾Óû§ÏµÄËùÓÐÁÐ
select table_name,column_name from user_tab_columns;
-- ²é¿´ORACLE Êý¾Ý¿âÖб¾Óû§ÏµÄËùÓÐÁÐ
se ......

SQL²Ù×÷È«¼¯

ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
SQL·ÖÀࣺ 
DDL—Êý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE) 
DML—Êý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT) 
DCL—Êý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK)
Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º
1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
CR ......

SQL Server 2005ÖеÄT SQLÔöÇ¿A

TOP ÔöÇ¿¡£¿ÉÒÔÖ¸¶¨Ò»¸öÊý×Ö±í´ïʽ£¬ÒÔ·µ»ØÒªÍ¨¹ý²éѯӰÏìµÄÐÐÊý»ò°Ù·Ö±È£¬»¹¿ÉÒÔ¸ù¾ÝÇé¿öʹÓñäÁ¿»ò×Ó²éѯ¡£
¿ÉÒÔÔÚDELETE¡¢UPDATEºÍINSERT²éѯÖÐʹÓÃTOPÑ¡Ïî¡£
2¡¢¸üºÃµØÌæ»»SET ROWCOUNTÑ¡Ïʹ֮¸üΪÓÐЧ¡£
OUTPUT
1¡¢SQL Server 2005ÒýÈëÒ»¸öеÄOUTPUT×Ӿ䣬ÒÔʹÄú¿ÉÒÔ³åÐÞ¸ÄÓï¾ä(INSERT¡¢UPDATE¡¢DELETE)ÖÐ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ