´Ó¡¾¸÷´óÈí¼þ¹«Ë¾±ÊÊÔѹÖáÌ⡿ѧϰSQLÓï¾ä
´Ó²©¿ÍÔ°Öп´µ½Ò»ÆªÎÄÕ£¬½éÉÜ´óÈí¼þ¹«Ë¾ÃæÊÔʱ³£³£»á³öµÄÁ½µÀSQLÌ⣨¼û¸½Â¼£©¡£
ÎÒ¾õµÃÊÜÒæºÜ¶à£¬ÔÚ´Ë֮ǰ£¬ÎÒÒ»Ö±¾õµÃ£¬SQL2008ËƺõÌṩÁËÕâ·½ÃæµÄÖ§³Ö£¬µ«¸üµÍµÄ°æ±¾£¬°üÀ¨2005£¬·ÇÓαê×ö²»³öÀ´£¨Ë®Æ½¹»²Ë£©¡£×ܽáÐĵÃÈçÏ£º
1¡¢ Ç¿´óµÄgroup by
1 select stdname,
2 isnull(sum( case stdsubject when ' »¯Ñ§ ' then Result end), 0 ) [»¯Ñ§],
3 isnull(sum( case stdsubject when ' Êýѧ ' then Result end), 0 ) [Êýѧ],
4 isnull(sum( case stdsubject when ' ÎïÀí ' then Result end), 0 ) [ÎïÀí],
5 isnull(sum( case stdsubject when ' ÓïÎÄ ' then Result end), 0 ) [ÓïÎÄ]
6 from #student
7 group by stdname
ÔÚÕâÀgroup byÓësum + case½áºÏ£¬¿ÉÒÔ½«±í1ÖеļǼ£¨ÐУ©±ä³É±í2µÄ×ֶΣ¨ÁУ©¡£SumÀïÃæÈç¹ûûÓÐcase£¬ÄÇô³öÀ´µÄÖµ£¬Ö»ÄÜÊÇÈ«²¿¿ÆÄ¿µÄ×ܺͣ¬ÓÃÁËcaseÒԺ󣬾ÍÊÇij¿ÆµÄ³É¼¨£»È»ºóÕâÀïÓÃÁ˺ü¸¸ösum£¬Ã¿¸ö¿ÆÄ¿Ò»¸ösum£¬ÓÚÊDZí1Öб¾À´Ä³ÈËij¿ÆÕ¼Ò»Ìõ¼Ç¼µÄ“ÐД¾Í±ä³ÉÁ˱í2ÀïijÈËÒ»Ìõ¼Ç¼£¬Ã¿¿Æ×öÒ»¸ö×Ö¶ÎÁË¡£
ÕâÖÖÐÄ˼ÇÉÃîºÍ¶ÔÓï·¨µÄÊìÁ·ÔËÓÃÈÃÈË»÷½ÚÔÞ̾¡£
2¡¢ ÀûÓÃselect from (select from)µÄģʽÉú³ÉSQLÓï¾ä
1 declare @sql varchar( 4000 )
2 set @sql = ' select stdname '
3 select @sql = @sql + ' ,isnull(sum(case stdsubject when ''' + stdsubject + ''' then Result end),0) [ ' + stdsubject + ' ] '
4 from (select distinct stdsubject from #student) as a
5 select @sql = @sql + ' from #student group by stdname '
6 print @sql
7 exec(@sql)
ΪÁË×Ô¶¯Ð´ÉÏËùÓеĿÆÄ¿£¬ÕâÀïÏȽ«¿ÆÄ¿ÐÅÏ¢ÌáÁ¶³öÀ´£º
4 from (select distinct stdsubject from #student) as &nb
Ïà¹ØÎĵµ£º
ÎÊÌâÒ»
ÓÐÕâÑùµÄÒ»¸öÎÊÌ⣬Êý¾Ý¿âÖÐÓÐÁ½¸ö±í£¬·Ö±ðÊÇGuest,Hotel£¬¼´ÂÿÍÐÅÏ¢±íºÍÂùÝÐÅÏ¢±í£¬Guest±íÖÐÓÐÒ»¸öÂÿͱàÂëµÄ×ֶΣ¬Õâ¸ö×ֶεÄÓÐ20룬ËüµÄÇ°10λ´ú±íÕâ¸öÂÿÍËùסµÄÂùݣ¬ÏÖÔÚµÄÎÊÌâÊÇÒª¸ù¾ÝGuest±íÖеÄÂÿͱàÂë×Ö¶ÎÐÅÏ¢²éµ½ËûËùסµÄÂùݵÄÃû³ÆºÍÂùݵØÖ·£¡
ÎÊÌâ½â¾ö:
SQL SERVERµÄSQLÓï¾ä£ºselect ......
¿´µ½±ðÈËÔÚÂÛ̳µÄÌáÎÊ£º
Ò»¸ö±íµÄЧÂÊÎÊÌâ
½ñÌìÅöµ½2Õűí
1ÕÅ ÓÐ×Ö¶Î
±íAÓÐ
jtbh(¼ÒÍ¥±àºÅ) hzxm(»§Ö÷ÐÕÃû) hnbh(»§ÄÚ×î´ó±àºÅ)
1000 ÕÅÈý 03
1001 ÕÔÁù..........................
±í ......
SELECT
T.ELES_FLG,
T.SENDUNIT_NAME,
T.ROM_SEQNO,
LTRIM(MAX(SYS_CONNECT_BY_PATH(T.MODEL, ',')), ',') MODEL
from (SELECT
......
ÈýÖÖSQL·ÖÒ³·¨
±íÖÐÖ÷¼ü±ØÐëΪ±êʶÁУ¬[ID] int IDENTITY (1,1)
1.·ÖÒ³·½°¸Ò»£º(ÀûÓÃNot InºÍSELECT TOP·ÖÒ³)
Óï¾äÐÎʽ£º
SELECT TOP 10 *
from TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
  ......
±¾ÎĽ«½éÉÜÀûÓÃSQL½¨Á¢Ë÷ÒýµÄ·½·¨¡£
¡¡¡¡¼ÙÉèÄãÏëÕÒÊéÖеÄijһ¸ö¾ä×Ó¡£Äã¿ÉÒÔÒ»Ò³Ò»Ò³µØÖðÒ³ËÑË÷£¬µ«Õâ»á»¨ºÜ¶àʱ¼ä¡£¶øͨ¹ýʹÓÃË÷Òý£¬Äã¿ÉÒԺܿìµØÕÒµ½ÄãÒªËÑË÷µÄÖ÷Ìâ¡£
¡¡¡¡±íµÄË÷ÒýÓ븽ÔÚÒ»±¾ÊéºóÃæµÄË÷Òý·Ç³£ÏàËÆ¡£Ëü¿ÉÒÔ¼«´óµØÌá¸ß²éѯµÄËٶȡ£¶ÔÒ»¸ö½Ï´óµÄ±íÀ´Ëµ£¬Í¨¹ý¼ÓË÷Òý£¬Ò»¸öͨ³£Òª»¨·Ñ¼¸¸öСʱÀ´Íê³ÉµÄ²éÑ¯Ö ......