我想基于某个数字测试表中的字段何时找到数字然后相应的值应该替换那些字段,我希望在视图中进行检查 以下是我到目前为止所做的工作。
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。 我将非常感谢您解决此问题的任何帮助
答案 0 :(得分:0)
如果所有条件都不匹配,则需要ELSE
,否则CASE
将返回NULL
。
https://msdn.microsoft.com/en-au/library/ms181765.aspx
ELSE else_result_expression
如果没有比较操作的计算结果为TRUE,则返回表达式。如果省略此参数且没有比较操作计算为TRUE,则CASE返回NULL