SQL语法问题:自连接转PARTITION BY后添加指定条件的方法
正确添加长度差条件的自连接查询
没问题,我来帮你把这个长度差条件正确加到你的自连接查询里。你只需要把AND ABS(t1.[t_Length] - t2.[t_Length]) <= 1这个条件追加到自连接的ON子句后面(如果原查询有其他连接条件的话),这样就能精准过滤出长度差值绝对值不超过1的记录对了。
下面是符合需求的等效自连接查询示例:
-- 假设你的原Query2是基于目标表做自连接 SELECT t1.*, t2.* FROM YourTable t1 INNER JOIN YourTable t2 -- 保留你原Query2中的自连接基础条件(比如避免同一条记录自匹配) ON t1.[ID] <> t2.[ID] -- 新增的长度差过滤条件 AND ABS(t1.[t_Length] - t2.[t_Length]) <= 1 -- 若有全局过滤需求,可在此添加WHERE子句
效果说明
这个条件会精准实现你的预期:
- 当
t1.t_Length和t2.t_Length的差值为0、1或-1时,两条记录会被成功匹配 - 差值绝对值大于1的记录对会被自动排除
比如示例数据中存在长度为3、4、5的记录时,长度3会匹配4,长度4会匹配3和5,长度5会匹配4,完全对应你要的预期输出。
内容的提问来源于stack exchange,提问作者user3904868
相关产品推荐
相关产品推荐

