½ÌÄãÈçºÎʹÓÃSQL ServerÀ´¹ýÂËÊý¾Ý
¡¡¡¡¹ØÏµÐÍÊý¾Ýͨ³£ÒԹ淶»¯ÐÎʽ±£´æ£¬¾ÍÊÇ˵ÄãÓ¦¸Ã¾¡¿ÉÄÜÉÙµØÖظ´Êý¾Ý;ͨ³£Çé¿öÏ£¬±íÓë±íÖ®¼ä½öͨ¹ý¸÷ÖÖ¼üֵʵÏÖ¹ØÁª¡£
¡¡¡¡¹ØÏµÐÍÊý¾Ýͨ³£ÒԹ淶»¯ÐÎʽ±£´æ£¬¾ÍÊÇ˵ÄãÓ¦¸Ã¾¡¿ÉÄÜÉÙµØÖظ´Êý¾Ý;ͨ³£Çé¿öÏ£¬±íÓë±íÖ®¼ä½öͨ¹ý¸÷ÖÖ¼üֵʵÏÖ¹ØÁª¡£½øÒ»²½µØ½²£¬¹æ·¶»¯µÄº¬Òå¾ÍÊÇ£ºÄã²»ÄÜÔÚÊý¾Ý¿âÖб£´æ¼ÆËãºóµÄÖµ£¬¶øÄãÖ»ÄÜÔÚÐèÒªµÄʱºòÁÙʱ¼ÆËãÊý¾Ý¿âÖб£´æµÄÖµ¡£
¡¡¡¡¶ÔÊý¾Ý½øÐÐijЩ·ÖÎöͨ³£ÊǺÜÖØÒªµÄ¡£±È·½Ëµ£¬Äã»òÐíÏëÖªµÀÄÄЩ²úÆ·µÄ¶¨µ¥×î¶à»òÕßÄÄЩ¶¨µ¥µÄÀûÈó×î´ó¡£ÕâЩÎÊÌâ¶¼ÒªÇóÄãÕë¶Ô×Ô¼ºµÄSQLÓï¾ä´´½¨Ö´ÐйýÂ˹æÔòµÄ¹«Ê½¡£ÆäÖÐ×îÖØÒªµÄÓï¾äÖ®Ò»¾ÍÊÇGROUP BY×Ӿ䡣
¡¡¡¡NorthwindÊý¾Ý¿âÖе͍µ¥
¡¡¡¡NorthwindÊý¾Ý¿âÊǰüº¬ÔÚSQL Server°²×°Èí¼þÖеÄÁ½¸öʾ·¶Êý¾Ý¿â¡£Õâ¸öÊý¾Ý¿âËäȻ̸²»ÉÏÍêÃÀÎÞȱµ«Ò²×ã¹»Âú×ãÎÒÃÇÌÖÂÛGROUP BYÓï¾äµÄÄ¿µÄÁË¡£ÔÒòÖ®Ò»ÊÇËü¹¤×÷ÔÀíÇåÎú£¬ÔËÐÐÁ¼ºÃ£¬°üº¬ÁËÒ»ÕûÌ×±ê×¼µÄÊý¾Ý±í£¬±ÈÈçCustomers(¿Í»§)¡¢Orders(¶¨µ¥)¡¢Order Details(¶¨µ¥Ï¸½Ú)ºÍ´¦Àí¶¨µ¥µÄProducts(²úÆ·)¡£
¡¡¡¡±íµÄ½á¹¹Ä£Ê½
¡¡¡¡Èç¹ûÄãÏë²é¿´¸÷¸ö¶¨µ¥µÄOrderIDºÍProductID £¬ÒÔϵÄSQLÃüÁî¿ÉÒÔÂú×ãÒªÇó£º
¡¡¡¡SELECT o.OrderID, od.ProductID
¡¡¡¡from Orders o, [Order Details] od
¡¡¡¡WHERE o.OrderID = od.OrderID
¡¡¡¡ÕâÑùÄã¾Íͨ¹ýOrderID×ֶΰÑOrdersºÍOrder DetailsÁ¬½ÓÁËÆðÀ´¡£¸ø³öµÄ½á¹ûÁÐ±í¼´ÏÔʾ¸÷¶¨»õÌõÄ¿µÄOrderIDºÍProductID¡£
¡¡¡¡Äã¿ÉÒÔ´ÓÕâ¸öÁбíÖÐÕÒµ½ÌõÄ¿ÊýÁ¿×î´óµÄ¶¨µ¥¡£¿ÉÊÇ£¬ÔÙÏëÏ룬ҪÄܼòµ¥µØÒªÇóÊý¾Ý¿â¼ÆËã³öÐèÒªµÄÌõÄ¿ÊýÄ¿²»¸ü·½±ãÂð?Èç¹ûÄã²»¹ØÐĵ¥¸öÌõÄ¿¶øÖ»ÏëÖªµÀ¶©¹ºÌõÄ¿ÊýÁ¿×î´óµÄ¶¨µ¥£¬ÄÇôÄã¿ÉÒÔ²ÉÓÃÒÔϵÄSQLÓï¾ä£º
¡¡¡¡SELECT o.OrderID, Count(od.ProductID) as NumItems
¡¡¡¡from Orders o, [Order Details] od
¡¡¡¡WHERE o.OrderID = od.OrderID
¡¡¡¡ÕâÑù¾Í¿ÉÒÔ×ܼƳö²úÆ·µÄÊýÁ¿²¢ÓÃÒ»¸öÃûΪNumItemsµÄÐÂ×Ö¶ÎÀ´ÏÔʾ×ÜÊý¡£¿ÉÊÇ£¬Èç¹ûÄãÖ´ÐиÃÓï¾äÔò¿ÉÄܵõ½ÒÔÏ´íÎó£º
¡¡¡¡Server: Msg 8118, Level 16, State 1, Line 1
¡¡¡¡Ñ¡ÔñÓï¾äÖеÄ'o.OrderID'ÁÐÊÇÎÞЧµÄ£¬ÒòΪËüûÓаüº¬Ôڻ㼯º¯ÊýÖ®ÄÚ¶øÇÒûÓÐÏàÓ¦µÄGROUP BY ×Ӿ䡣
¡¡¡¡ÔÚÕâÖÖÇé¿öÏ£¬Äãʵ¼ÊÉÏÔÚ×ܼÆProductID£¬µ«OrderIDȴûÓб»¼ÆËã×ܺͻòÕßÓÐÆäËû²Ù×÷Ê©¼ÓÓÚÆäÉÏ¡
Ïà¹ØÎĵµ£º
set @sql = 'select * from OPENROWSET(''SQLOLEDB'',''SERVER='+@serverip+';uid=sa;pwd=sa;Database='+@databaseName+''',''SET FMTONLY OFF;set nocount on exec procName '''''+@yqid+''''''' ) as   ......
--------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-04-23 20:33:15
-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul  ......
ÔÚÍøÉÏËÑÁË ºÃ¶à
ÓÐÆ´½Ó×Ö·û´®µÄ£¬²»¹ýÎÒ¾õµÃ ¼ÈÈ» sql ³ýÁË dateTime Õâ¸öÀàÐÍ ¾Í²»»áÈÃÄã È¥½ØÈ¡×Ö·û´® £¨ÕâÑù¶àÂ鷳ѽ£©
ÓÚÊÇÔÙËÑ £¬ÕÒµ½Ò»¸ö±È½ÏºÃµÄ ÏÖÔÚ½éÉÜÒ»ÏÂ
DATEDIFF(DAY,addDate, '2010-04-23') = -1
ʲôÒâË¼ÄØ£¿ÌýÎÒÂýÂý·Ö½â
DATEDIFF ²»ÓöàÉÙ º¯ÊýÃû
DAY ......
¡¡¡¡(1)ÕûºÏ¼òµ¥,ÎÞ¹ØÁªµÄÊý¾Ý¿â·ÃÎÊ£º
¡¡¡¡Èç¹ûÄãÓм¸¸ö¼òµ¥µÄÊý¾Ý¿â²éѯÓï¾ä,Äã¿ÉÒÔ°ÑËüÃÇÕûºÏµ½Ò»¸ö²éѯÖÐ(¼´Ê¹ËüÃÇÖ®¼äûÓйØÏµ)
¡¡¡¡(2)ɾ³ýÖØ¸´¼Ç¼£º
¡¡¡¡×î¸ßЧµÄɾ³ýÖØ¸´¼Ç¼·½·¨ ( ÒòΪʹÓÃÁËROWID)Àý×Ó£º
¡¡¡¡DELETE from EMP E WHERE E.ROWID > (SELECT MIN(X. ......