Postgres 的过滤器其中 ...和 ANSI 标准

问题描述

我想知道 Postgres 的 filter (where ...) 是否符合 ANSI 标准?

我不确定,因为它不是我遇到的大多数 RDBMS 中的功能,而且我似乎无法在任何地方找到明确的答案。

抱歉,如果“是 x ANSI”问题很单调。

解决方法

ISO/IEC 9075-2:2003(以及该标准的更高版本)在第 10 章第 9 节中定义了 FILTER 子句:

10.9

功能

指定根据行集合计算的值。

格式

<aggregate function> ::=
    COUNT <left paren> <asterisk> <right paren> [ <filter clause> ]
  | <general set function> [ <filter clause> ]
  | <binary set function> [ <filter clause> ]
  | <ordered set function> [ <filter clause> ]

[...]

<filter clause> ::=
    FILTER <left paren> WHERE <search condition> <right paren>

请注意,这不是标准要求的:它是可选功能 T612。