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)建立別名。

這將導致執行時出現大量錯誤。