WHERE和HAVING有什么区别

时间:2011-02-16 00:09:18

标签: tsql

看起来 WHERE HAVING 都有助于过滤行。我想知道我是否可以使用 WHERE ...和

我有点困惑。

感谢您的帮助

5 个答案:

答案 0 :(得分:30)

在分组操作发生之前,使用“WHERE”子句选择要包含在数据集中的行(GROUP BY)。您可以使用HAVING子句在分组后过滤行。

因此,如果您要汇总总和或最大值或最小值,则可以使用HAVING谓词检查候选行上的聚合值。

答案 1 :(得分:8)

有一些细微之处和错综复杂,但快速描述是一种比较:HAVING是GROUP BY,因为SELECT是。

换句话说,如果你认为HAVING是在GROUP BY子句之后应用的WHERE子句,事情就会开始变得有意义。

答案 2 :(得分:7)

答案 3 :(得分:1)

您可以将Having语句与Group By一起使用,通常用作过滤聚合列的方法。

您可以获得更多信息here

答案 4 :(得分:-1)

其中子句用于从整个数据库中筛选出行。 但 具有子句用于从特定的数据库组中过滤出行。 具有子句还可以帮助实现诸如最小/最大/平均值之类的汇总功能。

点击链接以获取更多详细信息 https://www.codeproject.com/Articles/25258/Where-Vs-Having-Difference-between-having-and-Wher