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

如何用SQL查找Auct_Car_ex有但Auct_Car没有的HORSEPOWER值

查找仅存在于外部表的Horsepower值实现方案

两表总行数一致但Horsepower字段去重计数差1,说明外部表存在内部表未收录的马力值,可通过以下任意一种SQL语句查询目标值:

  • 方案1:EXCEPT 差集查询(语义最直观,自动去重,推荐优先使用)
SELECT [HORSEPOWER] AS Only_In_Ex_Horsepower
FROM [dbo].[Auct_Car_Ex]
EXCEPT
SELECT [Horsepower]
FROM [dbo].[Auct_Car];

说明:EXCEPT会自动返回左查询存在、右查询不存在的去重结果,不需要额外加DISTINCT,对NULL值也会做等值判定,完全符合差集查询的预期。

  • 方案2:NOT EXISTS 子查询(性能优异,方便扩展查询异常关联数据)
SELECT DISTINCT ex.[HORSEPOWER] AS Only_In_Ex_Horsepower
FROM [dbo].[Auct_Car_Ex] ex
WHERE NOT EXISTS (
    SELECT 1
    FROM [dbo].[Auct_Car] c
    WHERE c.[Horsepower] = ex.[HORSEPOWER]
);

说明:如果需要同步查询这些缺失马力值对应的外部表其他字段(比如车辆ID、入库时间等定位异常原因),直接在SELECT后加对应字段即可,不需要改写整体逻辑。

  • 方案3:左连接判空(通用兼容写法,适配所有支持SQL标准的数据库)
SELECT DISTINCT ex.[HORSEPOWER] AS Only_In_Ex_Horsepower
FROM [dbo].[Auct_Car_Ex] ex
LEFT JOIN [dbo].[Auct_Car] c
    ON ex.[HORSEPOWER] = c.[Horsepower]
WHERE c.[Horsepower] IS NULL;

执行任意一条语句返回的结果,就是仅在[dbo].[Auct_Car_Ex]中存在、[dbo].[Auct_Car]中缺失的HORSEPOWER值,正常情况下这里会返回1条记录,刚好匹配两表去重计数差1的现象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:03:27