首页 > 解决方案 > 我想选择多行,但在其中一些行旁边打印一条消息,其中包含 SQL 中的特定值

问题描述

我正在尝试打印所有患者以及他们患有的疾病名称。如果患者患有“相思病”,则应在其旁边打印“危急情况”。如何在不更改表格的情况下执行此操作?

这是我到目前为止所拥有的

SELECT patientName, illnessName
FROM Patient
JOIN Suffers ON Suffers.patientID = Patient.patientID

我在想我可以使用SELECT patientName, illnessName, 'Critical condition' AS condition,但我不知道该怎么做,特别是那些患有“相思病”的人

一些帮助将不胜感激:)

标签: sql

解决方案


  • 用于case when添加 1 个或多个条件。
  • 在下面的示例中,我添加了相思病和一个随机值,即疾病 2。如果您只有一个,则可以将其删除,但如果您有超过 1 个,则可以添加更多 when 语句。
  • 在 else 语句中,如果需要,您将拥有最终条件。我传递了一个字符串值,但如果你想忽略它,那么你可以做 else end
SELECT patientName, 
       illnessName,
       case when illnessName = 'Love sickness' then 'Critical Condition'
            when illnessName =  ' sickness 2' then  ' less critical'
            ........
            else 'No illness condition specified' end as condition_level
FROM Patient
JOIN Suffers ON Suffers.patientID = Patient.patientID

推荐阅读