截至 2020 年 9 月,PostgreSQL 声称支持大部分 SQL:2016 标准,但其中的数字根本不匹配。来自 PostgreSQL 的文档:
从 2020 年 9 月发布的第 13 版开始,PostgreSQL 至少符合SQL:2016 Core 一致性的 179 个强制性特性中的 170 个。(强调我的)
因此不支持 9 个功能。但是在其他地方,PostgreSQL 列出了它不支持的 SQL:2016 的所有特性,并且列出了309个特性。这比SQL:2016 中声称的第一页更不受支持的功能。当然,一些不受支持的功能是无关紧要的,例如“Embedded Ada”或“Module Language COBOL”,但无论哪种方式,这里列出的不受支持的功能都超过 9 个。而且我认为 SQL:2016 在 2020 年和 2021 年之间没有太大变化(甚至根本没有变化),所以这不能成为不匹配的原因。
我认为个别不受支持的特性可能会以某种方式组合成 9 个“特性”,例如,所有涉及支持死语言的特性都算作一个特性,所有与 XML 相关的特性都算作一个特性,等等,但是在略读之后309 个不受支持的功能列表,我看不出有什么明确的方法可以做到这一点。
那么,为什么会出现差异?是因为单个功能被组合在一起,还是其他原因?
SQL 标准中的功能分为强制功能和可选功能。
如此处所述
(强调我的)
因此,您看到的差异源于强制性和可选功能之间的差异。