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

如何在SQL Server中基于双字段实现无主键表的关联查询

嗨,我来帮你搞定这个SQL Server的查询需求!

你在Excel里用IF(AND())实现的逻辑,对应到SQL Server里其实用**表关联(JOIN)**就能轻松实现,比函数写法更直观高效。

核心实现方案

如果只需要取出Table1中那些在Table2里有完全匹配日期的记录,用INNER JOIN就可以,这和你Excel里只保留满足双日期相等的逻辑完全一致:

SELECT 
    t1.Name,
    t2.[Number of Work Days] AS WORK_DAYS
FROM 
    Table1 t1
INNER JOIN 
    Table2 t2 
        ON t1.[Effective Date] = t2.[Effective Date] 
        AND t1.[End Date] = t2.[End Date];

扩展场景:保留Table1所有记录

如果你想保留Table1里的所有Name,哪怕某个Name对应的日期在Table2里没有匹配项(这时候WORK_DAYS可以显示0或者NULL),就用LEFT JOIN配合ISNULL函数:

SELECT 
    t1.Name,
    ISNULL(t2.[Number of Work Days], 0) AS WORK_DAYS -- 没有匹配时显示0,也可以直接写t2.[Number of Work Days]留空
FROM 
    Table1 t1
LEFT JOIN 
    Table2 t2 
        ON t1.[Effective Date] = t2.[Effective Date] 
        AND t1.[End Date] = t2.[End Date];

小提示

因为你的字段名里包含空格(比如Effective Date),所以在SQL里必须用方括号[]把这些字段名包裹起来,避免语法错误哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:06:04