SQL查询,其中当类别为Null或等于组的most服务器id时,字段将默认为0或1

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

我有下面的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 '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;

你需要的是一个案例陈述,正是这样。谢谢你,我试过了,但没有达到我的预期。