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

Use*_*987 1 sql sql-server sql-server-2008

Case stud.Status 
  when 'N'then 'NA' 
end
Run Code Online (Sandbox Code Playgroud)

如何在 IF 之前的when语句之前添加以下条件不等于2.即我只想在加上上述条件时分配.
@ID'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
Run Code Online (Sandbox Code Playgroud)

Mah*_*mal 5

像这样:

CASE 
  WHEN @ID <> 2 AND stud.Status ='N' THEN 'NA'
END
Run Code Online (Sandbox Code Playgroud)

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

需要注意的是:CASE表达式有两种形式:

  • 简单的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
Run Code Online (Sandbox Code Playgroud)