【问题标题】:ANSI Support of Select Count SQLStatements选择计数 SQL 语句的 ANSI 支持
【发布时间】:2012-01-20 21:30:53
【问题描述】:

我想知道是否有符合 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

【问题讨论】:

  • 还有OVER子句变体。您指的是ANSI 标准的哪个版本?
  • @MartinSmith - 我正在编写 JDBC 驱动程序,想知道通常支持什么。我不确定是否有 ANSI SQL 标准或其他标准列出了通常支持的内容....

标签: sql ansi-sql


【解决方案1】:

几乎所有 DBMS 使用的 SQL 标准是 ANSI 92 标准,可以在 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt 找到。第 124 页包含您正在寻找的信息。除了 ANSI 92 标准之外,大多数 DBMS 还提供一些东西,但这是所有这些标准中最小的公分母。

【讨论】:

    【解决方案2】:

    标准规范赋予COUNT(*) 特殊含义。否则,ColumnName 是实现定义的任何有效表达式。

    顺便说一句,你错过了一个:

    SELECT COUNT(ALL ColumnName) AS RowCount FROM table_name;
    

    SELECT ALL 一样,ALL 是默认值,可以省略——而且几乎总是这样!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多