SQL查询为特定值行添加自定义标注且不修改原表的实现方法
实现方案
使用SQL标准的CASE条件表达式即可实现动态生成标注列,不会修改原有数据表数据,兼容所有主流数据库(MySQL、PostgreSQL、SQL Server、Oracle等)。
最终查询语句
SELECT patientName, illnessName, CASE WHEN illnessName = 'Love sickness' THEN 'Critical condition' ELSE NULL END AS `condition` FROM Patient JOIN Suffers ON Suffers.patientID = Patient.patientID
逻辑说明
CASE WHEN会逐行校验疾病名称,只有当illnessName取值为Love sickness时,才会返回Critical condition作为condition列的取值,其余行默认返回空值NULL。- 如果你需要非匹配行显示其他内容,直接修改
ELSE分支后的取值即可,例如改为'Normal'就能让其他行显示普通状态标注。
内容的提问来源于stack exchange,提问作者dkajo
相关产品推荐
相关产品推荐

