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  

兩者都會導致:

名字 中間名字 姓
詹姆士 約翰 工匠
約翰 詹姆士 約翰遜
邁克爾 馬庫斯 威廉姆斯

此語句將返回具有給定名稱(別名)的 FName 和 LName 列。這是使用 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

從這些保留字(SELECT 和 FROM)建立別名。

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