问题描述
我想知道 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。