AND ( s.Status IS NULL OR CASE @p_Status WHEN 255 THEN s.Status IN (0, 1) 
                                                WHEN 254 THEN s.Status = 1 
                                                ELSE          s.Status = @p_Status 
                                 END ) 

解决方案 »

  1.   


    case when @p_status =255 then ...
         when @p_status =254 then ...
    else ...
    end 
      

  2.   

    case mao si bu neng zhe me yong ba.guan zhu
      

  3.   

    lou zhu shi yao fang zai "where" yu ju hou mian, shi ba ?
      

  4.   


    --then 后面不能有'=',更不能赋值
    THEN s.Status = 1 
    换一种方式吧
      

  5.   

    改成这样行不行?      AND ( @p_Status IS NULL OR @p_Status = 255 AND s.Status IN (0, 1)
                                  OR @p_Status = 254 AND s.Status = 1
                                  OR @p_Status = s.Status )
      

  6.   


    AND ( @p_Status IS NULL OR (@p_Status = 255 AND s.Status IN (0, 1)) 
                                  OR (@p_Status = 254 AND s.Status = 1) 
                                  OR (@p_Status = s.Status))注意括号