sql ÖÐ case when Óï·¨
sqlÓïÑÔÖÐÓÐûÓÐÀàËÆCÓïÑÔÖеÄswitch caseµÄÓï¾ä£¿£¿
ûÓÐ,ÓÃcase when À´´úÌæ¾ÍÐÐÁË.
ÀýÈç,ÏÂÃæµÄÓï¾äÏÔʾÖÐÎÄÄêÔÂ
select getdate() as ÈÕÆÚ,case month(getdate())
when 11 then 'ʮһ'
when 12 then 'Ê®¶þ'
else substring('Ò»¶þÈýËÄÎåÁùÆß°Ë¾ÅÊ®', month(getdate()),1)
end+'ÔÂ' as Ô·Ý
=====================================================================
CASE ¿ÉÄÜÊÇ SQL Öб»ÎóÓÃ×î¶àµÄ¹Ø¼ü×ÖÖ®Ò»¡£ËäÈ»Äã¿ÉÄÜÒÔǰÓùýÕâ¸ö¹Ø¼ü×ÖÀ´´´½¨×ֶΣ¬µ«ÊÇËü»¹¾ßÓиü¶àÓ÷¨¡£ÀýÈ磬Äã¿ÉÒÔÔÚ WHERE ×Ó¾äÖÐʹÓà CASE¡£
Ê×ÏÈÈÃÎÒÃÇ¿´Ò»Ï CASE µÄÓï·¨¡£ÔÚÒ»°ãµÄ SELECT ÖУ¬ÆäÓï·¨ÈçÏ£º
SELECT <myColumnSpec> =
CASE
WHEN <A> THEN <somethingA>
WHEN <B> THEN <somethingB>
ELSE <somethingE>
END
ÔÚÉÏÃæµÄ´úÂëÖÐÐèÒªÓþßÌåµÄ²ÎÊý´úÌæ¼âÀ¨ºÅÖеÄÄÚÈÝ¡£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÀý×Ó£º
USE pubs
GO
SELECT
Title,
'Price Range' =
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
from titles
ORDER BY price
GO
ÕâÊÇ CASE µÄµäÐÍÓ÷¨£¬µ«ÊÇʹÓà CASE Æäʵ¿ÉÒÔ×ö¸ü¶àµÄÊÂÇé¡£±È·½ËµÏÂÃæµÄ GROUP BY ×Ó¾äÖÐµÄ CASE£º
SELECT 'Number of Titles', Count(*)
from titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
&nb
Ïà¹ØÎĵµ£º
SQL²Ù×÷È«¼¯
ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
SQL·ÖÀࣺ
DDL—Êý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE)
DML—Êý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT)
DCL—Êý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK)
Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º
1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
CREATE ......
1.¶¨Òå»ù±¾±íÓï¾ä
Óï·¨£º
USE Êý¾Ý¿âÃû CREATE TABLE ±íÃû (ÁÐÃû ÀàÐÍ(´óС) DEFAULT'ĬÈÏÖµ',
& ......
µÚÊ®¶þÕ PL/SQLÓ¦ÓóÌÐòÐÔÄܵ÷ÓÅ
1¡¢PL/SQLÐÔÄÜÎÊÌâµÄÔµÓÉ
Ó¦»ùÓÚPL/SQLµÄÓ¦ÓóÌÐòÊ©ÐÐЧÂʵÍÏÂʱ£¬Í¨³£ÊÇÒòΪ²»ºÃµÄSQL»°Óï¡¢±à³Ì²½Ö裬¶ÔPL/SQL»ù´¡ÕÆÎÕÔã¸â»òÊÇÂÒÓù²ÏíÄÚ´æ´¢Æ÷´Ù³ÉµÄ¡£
•PL/SQLÖв»ºÃµÄSQL»°Óï
PL/SQL±à³Ì¿´ÉÏÈ¥Ïà¶ÔÕսϼòµ¥£¬ÓÉÓÚËüÃǵĸ´ÔÓÄÚÈݶ¼ÑÚ²ØÔÚSQL»°ÓïÖУ¬SQL»°Óï¾³£·Öµ£´óÁ¿µÄ ......
ÒÔǰ¶ÔÓÚSql ServerÖÐCaseÃüÁîµÄÓ÷¨Ò»Ö±²»ÊǺÜÁ˽⣬½ñÌìͨ¹ýÉÏÍø²éÁËһЩ×ÊÁÏ£¬½«Case»ù±¾µÄÓ÷¨×ܽáһϡ£
CaseÃüÁîÓÐÁ½ÖÖÓï·¨£º
A£©CASE<ÔËËãʽ>
WHEN <ÔËËãʽ> THEN <ÔËËãʽ>
……
WHEN <ÔËËãʽ> THEN <ÔËËãʽ>
[ELSE<ÔËËãʽ> ......
NULL£¬±íʾ²»Ã÷È·¡¢Î´ÖªµÄÁÐÖµ
²âÊÔ±í£ºtestnull(id varchar(32))
Êý¾Ý¿â£ºSybase ASA11.0
ÐÐÊý¾Ý(''), (NULL)
Êý¾Ý¿âÑ¡ÏîansinullΪtrue(Ò²ÊÇASAÊý¾Ý¿âµÄĬÈÏÑ¡Ïî)ʱ£¬
select * from testnull where id = null
select * from testnull where id != null
½á¹û¾ùΪ¿Õ
select * from testnull where id is null
½á¹ ......