代码之家  ›  专栏  ›  技术社区  ›  Stpete111

SQL查询返回多个列中具有特定条件的记录,其中只有一个具有特定值的记录

  •  0
  • Stpete111  · 技术社区  · 7 年前

    首先,我使用的SQL Server查询:

    SELECT InfoSource
    FROM dbo.orders
    WHERE Price IS NULL
    AND Date IS NULL
    AND Expiry IS NULL
    GROUP BY InfoSource
    HAVING COUNT(InfoSource) = 1
    

    许多记录可以有相同的 InfoSource 值。我正试图返回 信息源 如果该信息源只存在且只有一个记录,那么 WHERE 在那一条记录中满足了条件。问题是,在运行此查询之后,我获取结果并对其执行SELECT语句,只是为了验证记录是否符合条件,但其中许多 信息源 值存在于多个记录中。如果一个给定的信息源有多个记录,无论在何处条件,查询都不应该返回该信息源。

    我的小组是不是已经过去了,放错地方了?

    1 回复  |  直到 7 年前
        1
  •  1
  •   kkica    7 年前

    “无论在何处条件下,查询都不应返回该信息源。” 目前,何处执行前由集团执行。

    你需要的是在之后执行。

    select * from
    dbo.orders
    WHERE Price IS NULL
    AND Date IS NULL
    AND Expiry IS NULL
    AND InfoSource in (SELECT InfoSource
        FROM dbo.orders
        GROUP BY InfoSource
        HAVING COUNT(InfoSource) = 1)