Tsql 视图的条件CASE语句

Tsql 视图的条件CASE语句,tsql,case,Tsql,Case,我需要帮助为视图编写CASE语句,该语句根据不同列的值对列进行不同的转换。例如: CASE b.Column1 WHEN 1 THEN 'No' ELSE 'Yes' END AS Yes_or_No 这很好,它将Column1从另一个表转换为一个名为“Yes_或_No”的列,当Column1为1时显示“No”,当Column1为“0”或NULL时显示“Yes” 问题是,我希望仅当视图中的另一列Column2具有名为“Dev”的值时才会发生这种情况。因此,如果Column2的值为“Dev”,

我需要帮助为视图编写CASE语句,该语句根据不同列的值对列进行不同的转换。例如:

 CASE b.Column1 WHEN 1 THEN 'No' ELSE 'Yes' END AS Yes_or_No
这很好,它将Column1从另一个表转换为一个名为“Yes_或_No”的列,当Column1为1时显示“No”,当Column1为“0”或NULL时显示“Yes”

问题是,我希望仅当视图中的另一列Column2具有名为“Dev”的值时才会发生这种情况。因此,如果Column2的值为“Dev”,那么上面的CASE语句应该生效。如果Column2的值为“Test”或“Prod”,则我希望“Yes”或“No”仅为NULL。

CASE b.Column1当Column2的值为“dev”时,则为NULL
CASE b.Column1 WHEN column2 <> 'dev' then null 
when 1 THEN 'No' 
ELSE 'Yes' END AS Yes_or_No
当我说“不” 否则“是”以“是”或“否”结尾

一种简单的方法是嵌套case语句:

CASE WHEN Column2 = 'Dev' THEN
       case b.Column1 when 1 then 'No' else 'Yes' end
     WHEN Column2 in (  'Test', 'Prod' ) THEN 
       Null 
END  AS Yes_or_No
为了提高可读性,我用大写字母写了一个外部的
case
,用小写字母写了一个内部的