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

ÇÉÓÃSQL PIVOTʵÏÖ»·¾³¼à²âÊý¾ÝµÄ¡°Êúºá¡±×ª»»


Ë®»·¾³¼à²âÊý¾Ý´æ´¢½á¹¹ÖÐÓÐÒ»ÖÖģʽ½Ð×ö"Êú±íģʽ"£¬¼´ÔÚ¼à²âÊý¾Ý±íÖУ¬Ä³¸öµãλÔÚij¸öʱ¼äµãÉϸ÷¼à²âÏîÄ¿µÄŨ¶È²â¶¨ÖµÔÚÎïÀí±íÖд洢ÔÚ¶àÌõ¼Ç¼ÖУ¬³ÊÊú×´·Ö²¼¡£¼à²âÊý¾Ý±íÖаüº¬²âµã´úÂë¡¢¼à²âʱ¼ä¡¢¼à²âÏîÄ¿´úÂ롢Ũ¶È²â¶¨ÖµµÈ£¬ËùÓмà²âÏîÄ¿µÄŨ¶È²â¶¨Öµ¶¼´æ´¢ÔÚͬһ¸ö×Ö¶ÎÖУ¬¼ÓÒÔ¼à²âÏîÄ¿´úÂë×÷ÎªÇø·Ö×ֶΡ£
"Êú±íģʽ"µÄ×î´óÌØµãÊÇÁé»î¡¢¾ßÓнϺõÄÀ©Õ¹ÐÔ¡£Õë¶ÔÐÂÔö¼à²âÒò×Ó£¬Ö»ÐèÒªÔÚ¼à²âÒò×Ó±àÂë±í½øÐÐά»¤£¬Ôö¼Óеļà²âÒò×Ó£¬¾ÍÄÜÂú×ãÊý¾Ý´æ´¢µÄÒªÇó¡£ÕâÖÖÉè¼ÆÄ£Ê½·Ç³£ÊʺÏ×Ô¶¯¼à²âÕ¾ÒÔ¼°ÎÛȾԴ¼à²âÊý¾ÝµÄ´æ´¢¡£µ«ÊÇ"Êú±íģʽ"Ò²ÓÐһЩ²»×ãÖ®´¦£¬±ÈÈçÊý¾Ý¿É¶ÁÐÔ²»ºÃ£¬ÄÑÒÔ±í´ïij¸öµãλij¸öʱ¼äµãÉϵÄÕûÌåÊý¾ÝÇé¿ö£¬²»·ûºÏ´«Í³Ï°¹ßµÄ"ºá±í"Êý¾ÝÔĶÁ·½Ê½¡£ÈçºÎÈÃ"Êú±í"ת»»³É"ºá±í"ÊǺܶàÓ¦ÓÃϵͳÖж¼ÒªÓöµ½µÄÒ»¸öÎÊÌâ¡£
ÏÖ¼ÙÉèÓÐÒ»ÕÅÃû³ÆÎª"×Ô¶¯Õ¾¼à²âÊý¾ÝÈÕ¾ùÖµ±í" µÄÊý¾Ý±í£¬ÏêϸÊý¾ÝÈçÏ£º
²âµã´úÂë
Äê
ÔÂ
ÈÕ
¼à²âÏîÄ¿
ÎÛȾÎïŨ¶È
P001
2008
2
1
Éú»¯ÐèÑõÁ¿
298
P001
2008
2
1
×ÜÁ×
0.526
P001
2008
2
1
»¯Ñ§ÐèÑõÁ¿
414
P001
2008
2
1
°±µª
1.09
P002
2008
2
3
Éú»¯ÐèÑõÁ¿
198
P002
2008
2
3
×ÜÁ×
0.426
P002
2008
2
3
»¯Ñ§ÐèÑõÁ¿
314
P002
2008
2
3
×ܵª
3.71
   
ΪÁËÄܹ»½«Êý¾Ýת»»Îªºá±íÐÎʽ£¬Ê×ÏÈ£¬ÔÚSQL Server 2005£¨»ò2008£©Êý¾Ý¿âÖн¨Á¢´æ´¢¹ý³Ìusp_pivot¡£SQL´´½¨Óï¾äÈçÏ£º
   
CREATE PROC [dbo].[usp_pivot]
¡¡  @schema_name AS sysname¡¡¡¡  = N'dbo',-- ±í/ÊÓͼµÄ¼Ü¹¹
¡¡  @object_name AS sysname¡¡¡¡  = NULL, -- ±í/ÊÓͼµÄÃû³Æ
¡¡  @on_rows¡¡¡¡ AS sysname¡¡¡¡  = NULL, -- ·Ö×éÁÐ--¿ÉÒÔÊÇÒÔ,Ïà¸ôµÄ¶à¸öÁÐ
¡¡  @on_cols¡¡¡¡ AS sysname¡¡¡¡  = NULL, -- ÐýתÁÐ
¡¡  @agg_func¡¡  AS NVARCHAR(12) = N'MAX',-- ¾Û¼¯º¯Êý
¡¡  @agg_col¡¡¡¡ AS sysname¡¡¡¡  = NULL -- ͳ¼ÆÁÐ
AS
¡¡  DECLARE
¡¡  @object AS NVARCHAR(600),
¡¡  @sql¡¡¡¡ AS NVARCHAR(MAX),
¡¡  @cols¡¡  AS NVARCHAR(MAX),
¡¡  @newline AS NVARCHAR(2),
¡¡  @msg¡¡¡¡ AS NVARCHAR(500);
   
¡¡  SET @newline = NCHAR(13) + NCHAR(10);
¡¡  SET @object = QUOTENAME(@schema_name) + N'.'


Ïà¹ØÎĵµ£º

ms sql Ò»´Î²åÈë¶àÌõ¼Ç¼µÄÓï¾ä

ÓеÄʱºòÎÒÃÇÐèÒªÒ»´ÎÏñÊý¾Ý¿âÖÐÌí¼Ó¶àÌõ¼Ç¼£¬ÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæµÄÓï¾äÀ´ÊµÏÖ£º
--Ìí¼ÓÒ»Ìõ¼Ç¼
INSERT INTO tableName(col1,col2,col3) VALUES (1,2,3)
--Ìí¼Ó¶àÌõ¼Ç¼
INSERT INTO tableName(col1,col2,col3)
SELECT 3,4,5
UNION ALL
SELECT 6,7,8
--´ÓÁíÍâµÄÒ»ÕűíÖжÁÈ¡¶àÌõÊý¾ÝÌí¼Óµ½Ð±íÖÐ
INSERT INTO tabl ......

sql´æ´¢¹ý³Ì

±¾ÎÄ´Ó¶à¸ö½Ç¶È²ûÊöÁËSQL ServerÓë´æ´¢¹ý³ÌµÄ±È½Ï¡£
¢ÙΪʲôҪʹÓô洢¹ý³Ì£¿
ÒòΪËü±ÈSQLÓï¾äÖ´Ðп졣
¢Ú´æ´¢¹ý³ÌÊÇʲô?
°ÑÒ»¶ÑSQLÓï¾äÂÞÔÚÒ»Æð,»¹¿ÉÒÔ¸ù¾ÝÌõ¼þÖ´Ðв»Í¨SQLÓï¾ä¡£
¢ÛÀ´Ò»¸ö×î¼òµ¥µÄ´æ´¢¹ý³Ì£º
CREATE PROCEDURE dbo.testProcedure_AX
AS
select userID from
 USERS order by userid ......

SQL·Ö×é²éѯ ¿ÉÒÔ¶Ôÿһ×éÖÐÐÅÏ¢Á¿É¸Ñ¡

¿´¿´ÒÔÏÂSQLÓï¾ä£º
select row_number() over(partition by xs.xsbh, xs.kch order by coalesce(xs.bkxnxqh, xs.xnxqh) desc) rn
row_number()£º´ú±íÁÐ
partition by ´ú±í°´Ê²Ã´½øÐзÖ×é
order by¶Ôÿһ×éÐÅÏ¢½øÐÐÅÅÐò
coalesce()ÊÇÌæ»»µÄÒâ˼   ÀýÈ磺ÉÏÃæµÄSQLÓï¾äµÄÒâ˼ÊÇ£¬Èç¹ûbkxnxqhΪ¿Õ£¬ÄÇô¾ÍÈ¥xnx ......

sql server sysobjects xtypeÀàÐÍ

xtype  ´ú±íÀàÐÍ
C = CHECK Ô¼Êø
D = ĬÈÏÖµ»ò DEFAULT Ô¼Êø
F = FOREIGN KEY Ô¼Êø
L = ÈÕÖ¾
FN = ±êÁ¿º¯Êý
IF = ÄÚǶ±íº¯Êý
P = ´æ´¢¹ý³Ì
PK = PRIMARY KEY Ô¼Êø£¨ÀàÐÍÊÇ K£©
RF = ¸´ÖÆÉ¸Ñ¡´æ´¢¹ý³Ì
S = ϵͳ±í
TF = ±íº¯Êý
TR = ´¥·¢Æ÷
U = Óû§±í
UQ = UNIQUE Ô¼Êø£¨ÀàÐÍÊÇ K£©
V = ÊÓͼ ......

ɾ³ýsql serverÊý¾Ý¿âÖÐËùÓÐÊý¾Ý

Æäʵɾ³ýÊý¾Ý¿âÖÐÊý¾ÝµÄ·½·¨²¢²»¸´ÔÓ£¬ÎªÊ²Ã´ÎÒ»¹Òª¶à´ËÒ»¾ÙÄØ£¬Ò»ÊÇÎÒÕâÀï½éÉܵÄÊÇɾ³ýÊý¾Ý¿âµÄËùÓÐÊý¾Ý£¬ÒòΪÊý¾ÝÖ®¼ä¿ÉÄÜÐγÉÏà»¥Ô¼Êø¹ØÏµ£¬É¾³ý²Ù×÷¿ÉÄÜÏÝÈëËÀÑ­»·£¬¶þÊÇÕâÀïʹÓÃÁË΢ÈíδÕýʽ¹«¿ªµÄsp_MSForEachTable´æ´¢¹ý³Ì¡£
Ò²ÐíºÜ¶à¶ÁÕßÅóÓѶ¼¾­Àú¹ýÕâÑùµÄÊÂÇ飺ҪÔÚ¿ª·¢Êý¾Ý¿â»ù´¡ÉÏÇåÀíÒ»¸ö¿Õ¿â£¬µ«ÓÉÓÚ¶ÔÊý¾Ý¿ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ