HAVING 子句 (SQL Server Compact)

指定组或聚合的搜索条件。HAVING 通常与 GROUP BY 子句一起使用。

语法

[ HAVING < search_condition > ] 

参数

  • < search_condition >
    指定组要满足的搜索条件。搜索条件可以使用聚合表达式和非聚合表达式。只有在 GROUP BY 子句中指定为分组列的列才能用在非聚合表达式中。这是因为分组依据列表示整个组的通用属性。同样,聚合表达式也表示整个组的通用属性。HAVING 子句搜索条件表达的是组属性上的谓词。

    image 和 ntext 数据类型不能用在 HAVING 子句中。

注释

在 SQL Server 中允许进行以下查询,但是在 SQL Server Compact 中则不允许,这些查询会导致出现下面的错误消息:“在聚合和分组表达式中,HAVING 子句只能包含聚合函数和分组表达式。”

select count(*), c1+c2 from s1 group by c1+c2 having c1+c2 <10; 
select count(*), x from (select *, col1 + col2 as x from oj1) d group by x having x <4;

但是,如果使用简单的列变量而不是表达式(如 (c1+c2)),则可以在 SQL Server Compact 中进行这些查询。

示例

下面的示例返回计数总计 > 50 的所有产品的列表。

SELECT [Product ID], COUNT(*) AS Total FROM [Order Details] GROUP BY [Product ID] HAVING (COUNT(*) > 50)