Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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 ServerÊý¾Ý¿âË鯬

µ±Ë÷ÒýËùÔÚÒ³ÃæµÄ»ùÓÚÖ÷¹Ø¼ü×ÖµÄÂß¼­Ë³Ðò£¬ºÍÊý¾ÝÎļþÖеÄÎïÀí˳Ðò²»Æ¥Åäʱ£¬Ë鯬¾Í²úÉúÁË¡£ËùÓеÄÒ¶¼¶Ò³°üº¬ÁËÖ¸Ïòǰһ¸öºÍºóÒ»¸öÒ³µÄÖ¸Õë¡£ÕâÑù¾ÍÐγÉÒ»¸öË«Á´±í¡£ÀíÏëÇé¿öÏ£¬Êý¾ÝÎļþÖÐÒ³µÄÎïÀí˳Ðò»áºÍÂß¼­Ë³ÐòÆ¥Åä¡£Õû¸ö´ÅÅ̵Ť×÷ÐÔÄÜÔÚÎïÀí˳ÐòÆ¥ÅäÂß¼­Ë³Ðòʱ½«ÏÔÖøÌáÉý¡£¶ÔÄ³Ð©ÌØ¶¨µÄ²éѯ¶øÑÔ£¬Õ⽫´øÀ´¼«¼ÑµÄÐÔÄÜ ......

sqlÓïÑÔÖеÄcase when £¨À´×ÔÎÒ×ð¾´µÄһλÀÏʦСF£©

sqlÓïÑÔÖÐÓÐûÓÐÀàËÆCÓïÑÔÖеÄswitch caseµÄÓï¾ä£¿£¿
  ûÓÐ,ÓÃcase   when   À´´úÌæ¾ÍÐÐÁË.  
      
  ÀýÈç,ÏÂÃæµÄÓï¾äÏÔʾÖÐÎÄÄêÔ  
   
  select   getdate()   as   È ......

½«Ð¡Ð´½ð¶îת»»ÎªÖÐÎÄ´óдµÄSQLº¯Êý

CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,2))
RETURNS varchar(100) WITH ENCRYPTION --¼ÓÃÜ
AS
BEGIN
--°æÈ¨ËùÓУºpbsql
  DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int
  SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num*100) AS bigint) AS varchar(20)), ......

ÈçºÎʵÏÖÁ½¸ösqlÊý¾Ý¿â»¥Ïàͬ²½

Ó¦Óû·¾³¾ÍÊdzÌÐòÔÚÁ½¸öµØµãÔËÐеģ¬Á½±ß¶¼Òª²Ù×÷ÐÞ¸ÄÊý¾Ý£¬Á½µØÍ¨¹ý²¦ºÅÁ¬½Ó£¬ÊÇÓÃsql2000·½±ã£¬»¹ÊÇ2005·½±ã£¬ÓÃ2̨»úÆ÷¾Í¿ÉÒÔ»¹ÊÇ3̨»úÆ÷£¬Óô¥·¢Æ÷»¹ÊDZðµÄ·½·¨ÊµÏÖ£¿SQL codeÒÔÏÂʵÏÖ¸´ÖƲ½Ö裨ÒÔ¿ìÕÕ¸´ÖÆÎªÀý£©
ÔËÐÐÆ½Ì¨SQL SERVER 2005
Ò»¡¢×¼±¸¹¤×÷£º
1£®½¨Á¢Ò»¸ö WINDOWS Óû§£¬ÉèÖÃΪ¹ÜÀíԱȨÏÞ£¬²¢ÉèÖÃÃÜ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ