对于令人困惑的标题,我很抱歉,我不知道如何用语言表达我想要做的事情。无论如何,我需要评估两列流感和肺炎。计算列评估该行是否包含 Flu 和 Pneumonia 两列中的值,如果该行的 Flu 列包含任何内容,则返回 Flu,如果该行的 Pneumonia 列包含任何内容,则返回 Pneumonia。SQL如下:
CASE
WHEN FluSpecifics != '' THEN 'Flu'
WHEN PneumoniaSpecifics != '' THEN 'Pneumonia'
END as VaccineAdministered
但是,正如您所看到的,如果一行包含两列中的信息,我的查询将只关心 FluSpecifics 列中的值,因为在代码中它排在第一位。为了进一步澄清表格是否如下所示:
FluSpecifics PneumoniaSpecifics
successful vaccine successful vaccine
计算的列 VaccineAdministered 将返回 Flu。如果两者都存在,我需要此列返回两者。因此,如果两列都包含信息,我需要它来创建另一行。我怎样才能做到这一点?此外,我需要将两列都编译成一个名为“Specifics”的列,其中 PneumoniaSpecifics 数据对应于在 VaccineAdministered 字段中创建的具有“肺炎”的行,而 FluSpecifics 数据对应于在 VaccineAdministered 字段中创建的具有“Flu”的行。
如果您需要任何进一步的信息,请告诉我。我不关心确切的语法,我可以自己找出来(我正在使用缓存 SQL)。我宁愿知道这样做的一般方法。非常感谢您提前