CASEÔÚsql serverÖеÄʹÓÃÓ÷¨
CASE Óï¾äÔÚsql server¸úÆäËü³ÌÐòÓïÑÔÖеÄswitch¹¦ÄÜÀàËÆ£¬ÓÃÓÚ¼ÆËãÌõ¼þÁÐ±í²¢·µ»Ø¶à¸ö¿ÉÄܽá¹û±í´ïʽ֮һ¡£
ÔÚsql serverÖÐCASE¾ßÓÐÁ½ÖÖ¸ñʽ£º
a.¼òµ¥ CASE º¯Êý½«Ä³¸ö±í´ïʽÓëÒ»×é¼òµ¥±í´ïʽ½øÐбȽÏÒÔÈ·¶¨½á¹û¡£
b.CASE ËÑË÷º¯Êý¼ÆËãÒ»×é²¼¶û±í´ïʽÒÔÈ·¶¨½á¹û¡£
ÒÔÉÏÁ½ÖÖ¸ñʽ¶¼Ö§³Ö¿ÉÑ¡µÄ ELSE ²ÎÊý¡£
³£¼ûµÄ¼¸ÖÖCASEÓï¾äµÄÓ÷¨ÈçÏÂËùʾ:
1.CASE º¯ÊýÓÃÓÚ¼ÆËã¶à¸öÌõ¼þ²¢ÎªÃ¿¸öÌõ¼þ·µ»Øµ¥¸öÖµ¡£CASE º¯Êýͨ³£µÄÓÃ;ÊÇʹÓÿɶÁÐÔ¸üÇ¿µÄÖµÌæ»»´úÂë»òËõд¡£
ÏÂÃæµÄ²éѯʹÓà CASE º¯ÊýÖØÃüÃûÊé¼®µÄ·ÖÀ࣬ÒÔʹ֮¸üÒ×Àí½â¡£
USE pubs
SELECT
CASE type
WHEN 'popular_comp' THEN 'Popular Computing'
WHEN 'mod_cook' THEN 'Modern Cooking'
WHEN 'business' THEN 'Business'
WHEN 'psychology' THEN 'Psychology'
WHEN 'trad_cook' THEN 'Traditional Cooking'
ELSE 'Not yet categorized'
END AS Category,
CONVERT(varchar(30), title) AS "Shortened Title",
price AS Price
from titles
WHERE price IS NOT NULL
ORDER BY 1
2.ʹÓôøÓмòµ¥ CASE º¯ÊýºÍ CASE ËÑË÷º¯ÊýµÄ SELECT Óï¾ä
CASE º¯ÊýµÄÁíÒ»¸öÓÃ;¸øÊý¾Ý·ÖÀà¡£ÏÂÃæµÄ²éѯʹÓà CASE º¯Êý¶Ô¼Û¸ñ·ÖÀà¡£
SELECT
CASE
WHEN price IS NULL THEN 'Not yet priced'
WHEN price < 10 THEN 'Very Reasonable Title'
WHEN price >= 10 and price < 20 THEN 'Coffee Table Title'
ELSE 'Expensive book!'
END AS "Price Category",
CONVERT(varchar(20), title) AS "Shortened Title"
from pubs.dbo.titles
ORDER BY price
3.ʹÓôøÓÐ SUBSTRING ºÍ SELECT µÄ CASE º¯Êý
ÏÂÃæµÄʾÀýʹÓà CASE ºÍ THEN Éú³ÉÒ»¸öÓйØ×÷Õß¡¢Í¼Êé±êʶºÅºÍÿ¸ö×÷ÕßËùÖøÍ¼ÊéÀàÐ͵ÄÁÐ±í¡£
USE pubs
SELECT SUBSTRING((RTRIM(a.au_fname) + ' '+
RTRIM(a.au_lname) + ' '), 1, 25) AS Name, a
Ïà¹ØÎĵµ£º
Select * into customers from clients
(Êǽ«clients±íÀïµÄ¼Ç¼²åÈëµ½customersÖУ¬ÒªÇó£ºcustomers±í²»´æÔÚ£¬ÒòΪÔÚ²åÈëʱ»á×Ô¶¯´´½¨Ëü£»)
Insert into customers select * from clients
½â£ºInsert into customers select * from clients£©ÒªÇóÄ¿±ê±í£¨customers£©´æÔÚ£¬
ÓÉÓÚÄ¿±ê±íÒѾ´æÔÚ£¬ËùÒÔÎÒÃdzýÁ˲åÈëÔ´±í£ ......
SQL Server Filtered Indexes - What They Are, How to Use and Performance Advantages
Written By: Arshad Ali -- 7/2/2009 -
Problem
SQL Server 2008 introduces Filtered Indexes which is an index with a WHERE clause. Doesn’t it sound awesome especially for a table that has huge amount of data and ......
select a.FRMNO,a.GATE,a.MSGID,a.MailSendTime,a.UserNM, a.MailSubject,a.IsRead,a.FRMID,a.isattach,b.STATE ,a.FLOWSTATE from ROAMSGE a, ROASTAT b where a.FRMID = b.FRMID and b.state='1' and a.FrmNm like '%" + Cdorpsel1 + "%' and a.MAILSENDTIME>to_date('" + date1 + "','YYYY-MM-DD') ......