今天我看到有人使用这种语法(A)在 sql select 中设置列别名。
Select [ColumnAlias] = Column1 FROM Table
Run Code Online (Sandbox Code Playgroud)
通常我使用
Select Column1 AS [ColumnAlias] FROM Table
Run Code Online (Sandbox Code Playgroud)
我曾经=设置局部变量,但从未设置为别名。Select @LocalVar = Column1 FROM Table
有什么理由比 A 更喜欢 B 吗?我似乎在 A 搜索中找不到太多信息。
没有多少 RDBMS 支持equals语法,但 VB/C# 应用程序开发人员通常使用它,然后学习 MS SQL Server,因为它与为变量赋值相似,这当然是看待它的一种方式,尽管我找不到参考,该语法可能是为了鼓励开发人员采用MS SQL平台而采用的。
问题是这种用法是不明确的,因为可以使用相同的语法将列的值实际分配给变量,或者在语句中将UPDATE值分配给另一列:
-- assign the variable the value from Column1
SELECT @MyVar = Column1 FROM Table
-- Update Column2 with the value from Column1
UPDATE Column2 = Column1 FROM Table
Run Code Online (Sandbox Code Playgroud)
所有 SQL RDBMS 都支持使用AS关键字,它的歧义性要小得多,因为类似的语法只存在于CAST函数内部。
AS更具表现力,意图很明确,不会被误认为是作业。使用AS也被认为更标准,因为相同的语法可用于在 SQL 查询中为表、视图和其他记录集添加别名。
值得注意的是,
AS在大多数 RDBMS 中,这在技术上是可选的,因此您可以完全忽略它,但这样做可能会导致其他问题,特别是如果您要使用的别名实际上作为列或表的真实名称存在。使用“AS”的原因记录如下: https: //www.databasestar.com/sql-alias/
因此,虽然这些变体都可以为 SQL Server 中的列添加别名:
SELECT Column1 AS [alias] from Table
SELECT Column1 AS 'alias' from Table
SELECT Column1 [alias] FROM Table
SELECT [alias] = Column1 FROM Table
Run Code Online (Sandbox Code Playgroud)
仅AS(或省略它)适用于为表添加别名
SELECT Column1 AS [alias] from Table as t
SELECT Column1 [alias] FROM Table t
SELECT Column1 alias FROM Table [t]
Run Code Online (Sandbox Code Playgroud)
以下不适用于表别名
请注意,我们不能将表别名为字符串值,它必须是标记化名称
SELECT Column1 AS 'alias' from Table AS 't'
SELECT [alias] = Column1 FROM t = Table
Run Code Online (Sandbox Code Playgroud)
对于查询中的任何类型的别名(而不仅仅是列),UsingAS是所有表中最常支持的语法。因此,您会发现它也是最常见的记录语法。
| 归档时间: |
|
| 查看次数: |
1674 次 |
| 最近记录: |