SELECT 使用列别名

列别名主要用于缩短代码并使列名更具可读性。

代码变得更短,因为可以避免长表名和不必要的列标识 (例如,表中可能有 2 个 ID,但在语句中只使用了一个 ID) 。除了表别名, 这允许你在数据库结构中使用更长的描述性名称,同时保持对该结构的查询简洁。

此外,有时需要它们,例如在视图中,以便命名计算输出。

所有版本的 SQL

可以使用双引号(")在所有 SQL 版本中创建别名。

SELECT 
    FName AS "First Name", 
    MName AS "Middle Name",
    LName AS "Last Name"
FROM Employees  

不同版本的 SQL

你可以使用单引号('),双引号(")和方括号([])在 Microsoft SQL Server 中创建别名。

SELECT 
    FName AS "First Name", 
    MName AS 'Middle Name',
    LName AS [Last Name]
FROM Employees  

两者都会导致:

名字 中间名字
詹姆士 约翰 工匠
约翰 詹姆士 约翰逊
迈克尔 马库斯 威廉姆斯

此语句将返回具有给定名称(别名)的 FNameLName 列。这是使用 AS 运算符后跟别名,或者只是在列名后直接写别名来实现的。这意味着以下查询具有与上述相同的结果。

SELECT 
    FName "First Name", 
    MName "Middle Name",
    LName "Last Name"
FROM Employees 
名字 中间名字
詹姆士 约翰 工匠
约翰 詹姆士 约翰逊
迈克尔 马库斯 威廉姆斯

但是,显式版本(即使用 AS 运算符)更具可读性。

如果别名有一个不是保留字的单词,我们可以用单引号,双引号或括号来编写它:

SELECT 
    FName AS FirstName, 
    LName AS LastName
FROM Employees  
名字
詹姆士 工匠
约翰 约翰逊
迈克尔 威廉姆斯

MS SQL Server 中可用的另一个变体是 <alias> = <column-or-calculation>,例如:

SELECT FullName = FirstName + ' ' + LastName, 
       Addr1    = FullStreetAddress,
       Addr2    = TownName
FROM CustomerDetails  

这相当于:

SELECT FirstName + ' ' + LastName As FullName
       FullStreetAddress          As Addr1,
       TownName                   As Addr2
FROM CustomerDetails  

两者都会导致:

全名 地址 1 ADDR2
詹姆斯史密斯 123 AnyStreet TownVille
约翰约翰逊 668 MyRoad 北京市东城
Michael Williams 999 高端博士 Williamsburgh

有些人发现使用 = 而不是 As 更容易阅读,但很多人建议不要使用这种格式,主要是因为它不是标准的,所以没有得到所有数据库的广泛支持。它可能会导致与 = 字符的其他用法混淆。

所有版本的 SQL

此外,如果你需要使用保留字,可以使用括号或引号来转义:

SELECT
    FName as "SELECT",
    MName as "FROM",
    LName as "WHERE"
FROM Employees

不同版本的 SQL

同样,你可以使用所有不同的方法在 MSSQL 中转义关键字:

SELECT 
    FName AS "SELECT", 
    MName AS 'FROM',
    LName AS [WHERE]
FROM Employees  
选择 哪里
詹姆士 约翰 工匠
约翰 詹姆士 约翰逊
迈克尔 马库斯 威廉姆斯

此外,列别名可以用于同一查询的任何最终子句,例如 ORDER BY

SELECT 
    FName AS FirstName, 
    LName AS LastName
FROM 
    Employees 
ORDER BY 
    LastName DESC

但是,你可能不会使用

SELECT
    FName AS SELECT,
    LName AS FROM
FROM 
    Employees
ORDER BY 
    LastName DESC

从这些保留字(SELECTFROM)创建别名。

这将导致执行时出现大量错误。