SQLÖÐCaseµÄʹÓ÷½·¨(ÏÂÆª)
½ÓÉÏÆª
ËÄ£¬¸ù¾ÝÌõ¼þÓÐÑ¡ÔñµÄUPDATE¡£
Àý£¬ÓÐÈçϸüÐÂÌõ¼þ
¹¤×Ê5000ÒÔÉϵÄÖ°Ô±£¬¹¤×ʼõÉÙ10%
¹¤×ÊÔÚ2000µ½4600Ö®¼äµÄÖ°Ô±£¬¹¤×ÊÔö¼Ó15%
ºÜÈÝÒ׿¼ÂǵÄÊÇÑ¡ÔñÖ´ÐÐÁ½´ÎUPDATEÓï¾ä£¬ÈçÏÂËùʾ
--Ìõ¼þ1
UPDATE Personnel
SET salary = salary * 0.9
WHERE salary >= 5000;
--Ìõ¼þ2
UPDATE Personnel
SET salary = salary * 1.15
WHERE salary >= 2000 AND salary < 4600;
µ«ÊÇÊÂÇéûÓÐÏëÏóµÃÄÇô¼òµ¥£¬¼ÙÉèÓиöÈ˹¤×Ê5000¿é¡£Ê×ÏÈ£¬°´ÕÕÌõ¼þ1£¬¹¤×ʼõÉÙ10%£¬±ä³É¹¤×Ê4500¡£½ÓÏÂÀ´ÔËÐеڶþ¸öSQLʱºò£¬ÒòΪÕâ¸öÈ˵Ť×ÊÊÇ4500ÔÚ2000µ½4600µÄ·¶Î§Ö®ÄÚ£¬ ÐèÔö¼Ó15%£¬×îºóÕâ¸öÈ˵Ť×ʽá¹ûÊÇ5175,²»µ«Ã»ÓмõÉÙ£¬·´¶øÔö¼ÓÁË¡£Èç¹ûÒªÊÇ·´¹ýÀ´Ö´ÐУ¬ÄÇô¹¤×Ê4600µÄÈËÏà·´»á±ä³É¼õÉÙ¹¤×Ê¡£ÔÝÇÒ²»¹ÜÕâ¸ö¹æÕÂÊǶàô»Äµ®£¬Èç¹ûÏëÒªÒ»¸öSQL Óï¾äʵÏÖÕâ¸ö¹¦Äܵϰ£¬ÎÒÃÇÐèÒªÓõ½Caseº¯Êý¡£´úÂëÈçÏÂ:
UPDATE Personnel
SET salary = CASE WHEN salary >= 5000
¡¡ THEN salary * 0.9
WHEN salary >= 2000 AND salary < 4600
THEN salary * 1.15
ELSE salary END;
ÕâÀïҪעÒâÒ»µã£¬×îºóÒ»ÐеÄELSE salaryÊDZØÐèµÄ£¬ÒªÊÇûÓÐÕâÐУ¬²»·ûºÏÕâÁ½¸öÌõ¼þµÄÈ˵Ť×ʽ«»á±»Ð´³ÉNUll,Äǿɾʹóʲ»ÃîÁË¡£ÔÚCaseº¯ÊýÖÐElse²¿·ÖµÄĬÈÏÖµÊÇNULL£¬ÕâµãÊÇÐèҪעÒâµÄµØ·½¡£
ÕâÖÖ·½·¨»¹¿ÉÒÔÔÚºÜ¶àµØ·½Ê¹Ó㬱ÈÈç˵±ä¸üÖ÷¼üÕâÖÖÀۻ
Ò»°ãÇé¿öÏ£¬ÒªÏë°ÑÁ½ÌõÊý¾ÝµÄPrimary key,aºÍb½»»»£¬ÐèÒª¾¹ýÁÙʱ´æ´¢£¬¿½±´£¬¶Á»ØÊý¾ÝµÄÈý¸ö¹ý³Ì£¬ÒªÊÇʹÓÃCaseº¯ÊýµÄ»°£¬Ò»Çж¼±äµÃ¼òµ¥¶àÁË¡£
p_key
col_1
col_2
a
1
ÕÅÈý
b
2
ÀîËÄ
c
3
ÍõÎå
¼ÙÉèÓÐÈçÉÏÊý¾Ý£¬ÐèÒª°ÑÖ÷¼üaºÍbÏ໥½»»»¡£ÓÃCaseº¯ÊýÀ´ÊµÏֵϰ£¬´úÂëÈçÏÂ
UPDATE SomeTable
SET p_key = CASE WHEN p_key = 'a'
THEN 'b'
WHEN p_key = 'b'
THEN 'a'
ELSE p_key END
WHERE p_key IN ('a', 'b');
ͬÑùµÄÒ²¿ÉÒÔ½»»»Á½¸öUnique key¡£ÐèҪעÒâµÄÊÇ£¬Èç¹ûÓÐÐèÒª½»»»Ö÷¼üµÄÇé¿ö·¢Éú£¬¶à°ëÊǵ±³õ¶ÔÕâ¸ö±íµÄÉè¼Æ½øÐеò»¹»µ½Î»£¬½¨Òé¼ì²é±íµÄÉè¼ÆÊÇ·ñÍ×µ±¡£
Î壬Á½¸ö±íÊý¾ÝÊÇ·ñÒ»Öµļì²é¡£
Caseº¯Êý²»Í¬ÓÚDECODEº¯Êý¡£ÔÚCaseº¯ÊýÖУ¬¿ÉÒÔʹÓÃBETWEEN,LIKE,IS NULL,IN,EXISTSµÈµÈ¡£±ÈÈç˵ʹÓÃIN,EXISTS£¬¿ÉÒÔ½øÐÐ×Ó²éѯ£¬´Ó¶ø ʵÏÖ¸ü¶àµÄ¹¦ÄÜ¡£
ÏÂÃæ¾ß¸öÀý×ÓÀ´ËµÃ÷£¬ÓÐÁ½¸ö±í£¬tbl_A,tbl_B£¬Á½¸ö±íÖж¼ÓÐkeyColÁС£ÏÖÔÚÎÒÃǶÔÁ½¸ö±í½øÐбȽϣ¬tbl_AÖеÄkeyColÁе
Ïà¹ØÎĵµ£º
´íÎóÌáʾ£º
Ö¸¶¨µÄÁ¬½ÓÀàÐÍ“OLEDB”δ±»Ê¶±ðΪÓÐЧµÄÁ¬½Ó¹ÜÀíÆ÷ÀàÐÍ¡£µ±ÊÔͼ´´½¨Î´ÖªÁ¬½ÓÀàÐ͵ÄÁ¬½Ó¹ÜÀíÆ÷ʱ»á·µ»Ø´Ë´íÎó¡£Çë¼ì²éÁ¬½ÓÀàÐÍÃû³ÆµÄƴдÊÇ·ñÕýÈ·¡£
½â¾ö·½·¨£º
sqlserver2005-ÅäÖù¤¾ß-SqlServer configuration manager-SqlServer2005·þÎñ-sqlserver Integration Services£¬ÓÒ»÷-Ñ¡ÔñÊôÐÔ£¬È»ºó° ......
Á¬½Ó²éѯ£¬¾ÍÊǽ«
Á½¸ö»ò¶à¸ö
±í»òÊÓͼ
ͨ¹ýÒ»¶¨µÄÌõ¼þ
½«È«²¿»ò²¿·Ý×Ö¶Î
È«²¿»ò²¿·Ý¼Ç¼
Á¬½Óµ½Ò»Æð£¬µÃµ½Ò»¸öеÄÊý¾Ý¼¯ºÏ¡£
È磺ÓÐÈËÔ±µµ°¸ºÍ¹¤×ʵµ°¸Á½¸ö±í£¬Á½¸ö±íÓй²Í¬µÄ¹Ø¼ü×Ö¶ÎXMDM(ÐÕÃû´úÂ룩£¬ÆäÖÐÈËÔ±µµ°¸´æ´¢ÁËÈËÊÂ×ÊÁÏ£¬¹¤×ʵµ°¸´æ´¢ÁËн³ê×ÊÁÏ¡£
Òò´Ë¿ÉÒÔͨ¹ýXMDM×ֶν«Á½¸ö±íÁ¬½ÓÆðÀ´£¬´Ó¶øÊ¹²éѯ½ ......
Èç¹ûûÓÐÔ¶³ÌÊý¾Ý¿âËùÔÚ·þÎñÆ÷µÄwindowsÕ˺ÅÃÜÂ룬½öÓÐÔ¶³ÌSQL ServerÊý¾Ý¿âµÄÓû§ÃÜÂ룬¸ÃÈçºÎ±¸·ÝÔ¶³ÌÊý¾Ý¿âdb1µÄÊý¾Ýµ½±¾µØÄØ£¿
1£ºÔÚ±¾µØ°²×°Í¨°æ±¾µÄÊý¾Ý¿âÈí¼þ£¨±ÈÈ磺SQL Server2000£©
2£ºÔÚ±¾µØÊý¾Ý¿â·þÎñÆ÷ÉÏ´´½¨Êý¾Ý¿âdb2£»
3£ºÊ¹Óñ¾µØ“ÆóÒµ¹ÜÀíÆ÷”×¢²áÔ¶³ÌÊý¾Ý¿â£¬²¢½ ......
Êý¾Ý¿â ÓÐÁ½Õűí
±í1£º student
±í2£ºchinese
ÏÖÔÚÒª·Ö±ðÁгö ÿËùѧУ ÓïÎijɼ¨×î¸ßµÄ ѧÉúÐÅÏ¢
SQL £º
SELECT *
from student
LEFT JOIN chinese ON student.no = chinese.no
WHERE chinese.chengji
IN (
SELECT max( chinese.chengji )
from student
LEFT JOIN chinese ON student.no = chinese.no
GROU ......
ÔõÑù´ÓÊý¾Ý¿âÀïËæ»ú¶ÁÈ¡
Ò»Ìõ¼Ç¼£¬
SELECT TOP 1 * from dbo.Customers ORDER BY NEWID()
ÕâÑù£¬Èç¹ûÊÇËæ»ú10
Ìõ£¬100Ìõ¡£¡£¡£¡£
SELECT TOP 10 * from dbo.Customers ORDER BY NEWID()
ºÜ¼òµ¥°É¡£
²»¹ýtopºóÃæÊý×ÖÔ½´ó£¬ÔËÐÐËÙ¶ÈÔ½Âý¡£²»ÍƼöÊý¾Ý×ÖÌ«´ó¡£
ÒÔºó´úÂëÔÚSQL2000 ......