我想知道是否有符合 ANSI 标准的受支持的 Select Count SQL 语句列表?以下三种变体是我所知道的。可以在下面的所有三个上使用 where 子句吗?
SELECT COUNT(*) AS RowCount FROM table_name
SELECT COUNT(ColumnName) AS RowCount FROM table_name
SELECT COUNT(DISTINCT ColumnName) AS RowCount FROM table_name
几乎所有 DBMS 使用的 SQL 标准是 ANSI 92 标准,可以在http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt找到。第 124 页包含您要查找的信息。除了 ANSI 92 标准之外,大多数 DBMS 还提供一些东西,但这是所有这些标准中最小的公分母。
标准规范赋予COUNT(*)
. 否则,ColumnName
是实现定义的任何有效表达式。
顺便说一句,您错过了一个:
SELECT COUNT(ALL ColumnName) AS RowCount FROM table_name;
与 一样SELECT ALL
,ALL
是默认值,可以省略 - 几乎总是这样!