【问题标题】:When was aliasing using "=" versus "as" introduced and what is the name of that version何时使用“=”与“as”进行别名,该版本的名称是什么
【发布时间】:2021-06-04 06:30:35
【问题描述】:

什么时候支持“=”代替“as”而不是“as”的sql的flavor的名字?

SELECT 
 A = Col1
,B = Col2
FROM Table

相对于 SQL-86

SELECT
  Col1 AS A
, Col2 AS B
FROM Table

【问题讨论】:

  • 在 SQL Server 2000 中当然都支持这两者,试图找到任何比这更旧的东西需要找到/安装旧版本的 BOL 或查看死树。但是,即使有答案,除了在琐事测验中得到正确答案之外,它还能帮助您解决什么问题
  • (ANSI/ISO SQL) 布尔表达式 A = Col1 返回 TRUE、FALSE 或 null/unknown。 IE。与“别名”无关。
  • 我认为这可以追溯到 Sybase 时代(无论如何在 Sql Server 世界中。)
  • A = Col1 从未在标准 SQL 中引入列别名。这是一个布尔表达式,将列 A 与列 Col1 进行比较
  • SQL Server 支持的 SQL 风格称为 T-SQL,顺便提一下,与几乎所有 SQL 风格一样,它并不完全符合标准 SQL。如果您担心兼容性或被尽可能多的审阅者理解,请仅使用AS,因为“表达式形式”是非标准的——T-SQL 可以不使用它,因为它缺少布尔类型。

标签: sql-server ansi-sql column-alias


【解决方案1】:

这对我来说是一个很大的惊喜。看来 column_alias = 表达式一直是 T-SQL 原始语法的一部分。

将 AS 命令添加到 T-SQL.80 (2000) 以兼容 SQL-92。

摘自 SQL2000_release.pdf 第 1459 页

The AS clause is the syntax defined in the SQL-92 standard for assigning a name to a result set column. This is the preferred
syntax to use in Microsoft® SQL Server™.

column_name AS column_alias

Or

result_column_expression AS derived_column_name

Transact-SQL also supports the following syntax for compatibility with earlier versions of SQL Server:

column_alias = column_name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    相关资源
    最近更新 更多