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

SQL JOIN时提取Table A中ID列逗号左侧首个值进行关联的方案

解决方案:提取Table A首个ID关联并去重Table B记录

修改后的SQL语句

SELECT a.name, b.Company
FROM TableA a
INNER JOIN (
    -- 对Table B按ID分组,每个ID仅保留一条Company记录(此处取字典序最小的Company)
    SELECT ID, MIN(Company) AS Company
    FROM TableB
    GROUP BY ID
) b ON b.id = CASE 
    WHEN CHARINDEX(',', a.id) > 0 THEN LEFT(a.id, CHARINDEX(',', a.id) - 1)
    ELSE a.id
END
WHERE b.id IS NOT NULL

关键逻辑说明

  • 提取Table A的首个ID:通过CHARINDEX判断ID字段是否包含逗号,若存在则用LEFT截取逗号前的子串作为关联ID;无逗号则直接使用原ID。
  • 去重Table B的重复ID:利用GROUP BY ID分组,结合MIN(Company)确保每个ID仅对应一条Company记录,避免关联后出现重复结果。
  • 关联与筛选:通过INNER JOIN匹配处理后的ID,WHERE子句确保只保留成功关联的记录。

预期执行结果

nameCompany
BobKroc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:55:05