繁体   English   中英

SQL查询返回多列中具有特定条件的记录,并且仅存在具有特定值的一条记录

[英]SQL Query to return records with certain conditions in several columns, and where only one record with a certain value exists

首先,我使用的 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值。 我试图返回任何价值InfoSource那里是仅只有一个存在该记录InfoSourceWHERE条件是一个记录中得到满足。

问题是,在我运行此查询后,我获取结果并对它们执行SELECT语句只是为了验证记录是否满足条件,但许多InfoSource值存在于多个记录中。 如果给定的InfoSource有多个记录,则无论WHERE条件如何,查询都不应返回该InfoSource

我是否以某种方式将GROUP BYHAVING放错了位置?

无论 WHERE 条件如何,查询都不应返回该 InfoSource

目前, where子句是在having子句之前执行的。

您需要的是在之后执行它。

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM