SQL查询,其中当类别为Null或等于组的most服务器id时,字段将默认为0或1
我有下面的SQL语句SQL查询,其中当类别为Null或等于组的most服务器id时,字段将默认为0或1,sql,tsql,sql-server-2014,Sql,Tsql,Sql Server 2014,我有下面的SQL语句 SELECT DISTINCT Mem.MemberID, Mem.LastName + ', ' + Mem.FirstName AS Name, MIN(MD.DiagnosisID) OVER(PARTITION BY Mem.MemberID) AS 'Most Severe Diagnosis' ,MIN(Diag.DiagnosisDescription) OVER(PARTITION BY Mem.MemberID) AS 'Mo
SELECT DISTINCT
Mem.MemberID, Mem.LastName + ', ' + Mem.FirstName AS Name,
MIN(MD.DiagnosisID) OVER(PARTITION BY Mem.MemberID) AS 'Most Severe Diagnosis'
,MIN(Diag.DiagnosisDescription) OVER(PARTITION BY Mem.MemberID) AS 'Most Severe Diagnosis Description'
,dc.DiagnosisCategoryID, dc.CategoryDescription, dc.CategoryScore,
MIN(ISNULL(DC.DiagnosisCategoryID,1)) OVER(PARTITION BY Mem.MemberID) AS 'Most Severe Category'
FROM
Member AS Mem
LEFT OUTER JOIN
MemberDiagnosis AS MD ON Mem.MemberID = MD.MemberID
LEFT OUTER JOIN
Diagnosis AS Diag ON MD.DiagnosisID = Diag.DiagnosisID
LEFT OUTER JOIN
DiagnosisCategoryMap AS Map ON Map.DiagnosisID = Diag.DiagnosisID
LEFT OUTER JOIN
DiagnosisCategory AS DC ON DC.DiagnosisCategoryID = Map.DiagnosisCategoryID
ORDER BY Name
返回下表
ID|NAME |MOST SEVERE DIAG|DIAG DESCPTION |CatId|Cat DESC |SCORE|Is Most Severe|
--+-----------+----------------+---------------+-----+----------+-----+--------------+
2 |Smith, Jack|NULL |NULL |NULL |NULL |NULL |1 |
1 |Smith, John|2 |Test Diagnosis2|2 |Category B|20 |2 |
1 |Smith, John|2 |Test Diagnosis2|3 |Category C|30 |2 |
3 |Smyth, Will|3 |Test Diagnosis3|3 |Category C|30 |3 |
--+-----------+----------------+---------------+-----+----------+-----+--------------+
在“最严重”列中,如何将其默认值设置为0,或者如果CatId是最严重的服务器或null,如何将其默认值设置为1。因此,在上表中,最后一列将包含数据;1 1 0 1.使用
大小写表达式:
SELECT DISTINCT
Mem.MemberID,
Mem.LastName + ', ' + Mem.FirstName AS Name,
MIN(MD.DiagnosisID) OVER(PARTITION BY Mem.MemberID) AS 'Most Severe Diagnosis',
MIN(Diag.DiagnosisDescription) OVER(PARTITION BY Mem.MemberID) AS 'Most Severe Diagnosis Description',
dc.DiagnosisCategoryID,
dc.CategoryDescription,
dc.CategoryScore,
CASE WHEN dc.DiagnosisCategoryID = MIN(MD.DiagnosisID) OVER(PARTITION BY Mem.MemberID) OR
dc.DiagnosisCategoryID IS NULL
THEN 1 ELSE 0 END AS 'Is Most Severe'
FROM
Member AS Mem
LEFT OUTER JOIN
MemberDiagnosis AS MD ON Mem.MemberID = MD.MemberID
LEFT OUTER JOIN
Diagnosis AS Diag ON MD.DiagnosisID = Diag.DiagnosisID
LEFT OUTER JOIN
DiagnosisCategoryMap AS Map ON Map.DiagnosisID = Diag.DiagnosisID
LEFT OUTER JOIN
DiagnosisCategory AS DC ON DC.DiagnosisCategoryID = Map.DiagnosisCategoryID
ORDER BY
Name;
你需要的是一个案例陈述,正是这样。谢谢你,我试过了,但没有达到我的预期。