如何使用案例---什么时候-----在SQL视图中结束

时间:2016-02-17 05:37:43

标签: sql-server-2008

我想基于某个数字测试表中的字段何时找到数字然后相应的值应该替换那些字段,我希望在视图中进行检查  以下是我到目前为止所做的工作。

DECLARE @SQL VARCHAR(4000)
SELECT @SQL='CREATE VIEW VW_DEMOGRAPHIC AS
BEGIN
SELECT  DISTINCT TOP(120) REPLACE(a.Lastname,a.Lastname,''Hidden'')as   Lastname 
,REPLACE(a.Firstname,a.Firstname,''Hidden'')as Firstname 
CASE b.MaritalStatus
WHEN ''42'' THEN ''SINGLE''
WHEN ''43'' THEN ''MARRIED''
WHEN ''44'' THEN ''WIDOW''
WHEN ''47'' THEN ''DIVORCE''
WHEN ''189'' THEN ''SEPERATED''
END as [Marital Status]
from VW_PatientDetail a
join mst_Patient b on a.Ptn_pk = b.Ptn_Pk GROUP BY a.AGE,a.Lastname,    a.Firstname, b.MaritalStatus'
exec (@sql1)
END

如果我运行选择部分它工作正常但在sql视图中,[Marital Status]列导致Null。  我将非常感谢您解决此问题的任何帮助

1 个答案:

答案 0 :(得分:0)

如果所有条件都不匹配,则需要ELSE,否则CASE将返回NULL

https://msdn.microsoft.com/en-au/library/ms181765.aspx

  

ELSE else_result_expression

     

如果没有比较操作的计算结果为TRUE,则返回表达式。如果省略此参数且没有比较操作计算为TRUE,则CASE返回NULL