You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server左连接保留不匹配行并新增护士接诊标识列方法

Microsoft SQL Server 两表关联查询实现方案

基础表信息

  • EMER表:急诊患者入院基础数据表,包含Patient(患者标识)、AdDate(入院日期)、AdNum(入院编号)、MedRec(病历号)4个字段
  • DESCRIP表:患者护士评估记录表,包含Patient(患者标识)、MedRec(病历号)、NurseAssesment(护士评估内容)3个字段

第一阶段:保留EMER全量记录的关联查询

要保留左表(EMER)全部记录、右表无匹配时对应字段返回NULL,使用LEFT JOIN左连接实现即可,代码如下:

-- 输出结果对应需求中的表3
SELECT
    e.Patient,
    e.AdDate,
    e.AdNum,
    e.MedRec,
    d.NurseAssesment
FROM EMER e
LEFT JOIN DESCRIP d
    -- 优先用唯一标识病历号做关联,避免重名患者匹配错误
    ON e.MedRec = d.MedRec

执行后未在DESCRIP表中存在评估记录的患者(如样例中的患者B),NurseAssesment字段会自动返回NULL,完全匹配表3的结果结构。

第二阶段:新增护士评估状态标识列

在左连接的基础上,通过CASE WHEN判断评估字段是否为空,生成二进制标识列HasSeenNurse,代码如下:

-- 输出结果对应需求中的表4
SELECT
    e.Patient,
    e.AdDate,
    e.AdNum,
    e.MedRec,
    d.NurseAssesment,
    CASE
        WHEN d.NurseAssesment IS NULL THEN 0
        ELSE 1
    END AS HasSeenNurse
FROM EMER e
LEFT JOIN DESCRIP d
    ON e.MedRec = d.MedRec

注意:如果业务要求必须同时匹配患者标识和病历号才判定为同一人,只需要把左连接的关联条件修改为ON e.Patient = d.Patient AND e.MedRec = d.MedRec即可,其余逻辑无需调整。

内容的提问来源于stack exchange,提问作者KapSht

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:51:46