在case语句之前检查是否有条件

时间:2013-01-02 07:42:35

标签: sql sql-server sql-server-2008

Case stud.Status 
  when 'N'then 'NA' 
end

如何在上述when语句之前添加以下条件
 如果@ID不等于2.我希望仅在'NA'加上上述条件时才指定id <> 2

编辑:完整查询

        Case Stud.Status 
            when @ID = 2 AND Stud.Status = 'N' then 'To Be Submitted'
            when 'N'then 'N/A' 
            else isnull(Stud.Status, '') 
        end

3 个答案:

答案 0 :(得分:5)

像这样:

CASE 
  WHEN @ID <> 2 AND stud.Status ='N' THEN 'NA'
END

这是CASE表达式的另一种形式。

请注意: CASE expression有两种形式:

  
      
  • 简单的CASE表达式将表达式与一组简单表达式进行比较,以确定结果。

  •   
  • 搜索到的CASE表达式计算一组布尔表达式以确定结果。

  •   

更新:请改为尝试:

      'StudStatus' = 
         CASE  
           WHEN @ID = 5 AND Stud.Status = 'N' THEN 'To Be Submitted'
           WHEN Stud.Status = 'N' THEN 'N/A' 
           ELSE ISNULL(Stud.Status, '') 
        END

答案 1 :(得分:1)

试试这个

 Case stud.Status 
   when 'N' and @id<>2 then 'NA' 
 end

答案 2 :(得分:0)

if @ID <> 2 
begin
     Case stud.Status 
        when 'N'then 'NA' 
          end

end