if @duty=1  
set @dutycount1=@dutycount
else
   if @duty=2 
   set @dutycount2=@dutycount
   else
       if @duty=3  
       set @dutycount3=@dutycount
       else
           if @duty=4 
           set @dutycount4=@dutycount
           else
               if @duty=5  
               set @dutycount5=@dutycount
               else
                   if @duty=9 
                   set @dutycount6=@dutycount
                   else
                       set @dutycount7=@dutycount7+@dutycount
这一段可以不可以用case 啊?

解决方案 »

  1.   

    存储过程中case 的语法怎么写?
      

  2.   

    A. 使用带有简单 CASE 函数的 SELECT 语句
    在 SELECT 语句中,简单 CASE 函数仅检查是否相等,而不进行其它比较。下面的示例使用 CASE 函数更改图书分类显示,以使其更易于理解。USE pubs
    GO
    SELECT   Category = 
          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,
       CAST(title AS varchar(25)) AS 'Shortened Title',
       price AS Price
    FROM titles
    WHERE price IS NOT NULL
    ORDER BY type, price
    COMPUTE AVG(price) BY type
    GO