SQL UPPER:將字串轉換為大寫

摘要:本教學將說明如何使用 SQL UPPER 函數將字串轉換為大寫。

SQL UPPER 函數簡介

SQL UPPER 函數會將字串中的所有字母轉換為大寫。 如果您想要將字串轉換為小寫,則改用 LOWER 函數。

UPPER 函數的語法如下所示,非常簡單。

UPPER(string);Code language: SQL (Structured Query Language) (sql)

如果輸入字串為 NULLUPPER 函數會回傳 NULL,否則,它會回傳一個所有字母都轉換為大寫的新字串。

除了 UPPER 函數之外,某些資料庫系統還提供了另一個名為 UCASE 的函數,其與 UPPER 函數相同。 這就是「條條大路通羅馬」的概念。

UCASE(string);Code language: SQL (Structured Query Language) (sql)

SQL UPPER 函數範例

以下陳述式會將字串 sql upper 轉換為 SQL UPPER

SELECT UPPER('sql upper');Code language: SQL (Structured Query Language) (sql)
        UPPER
----------------------
SQL UPPER
(1 row)Code language: SQL (Structured Query Language) (sql)

讓我們看看 範例資料庫 中的 employees 資料表。

employees table

以下 查詢 使用 UPPER 函數將員工的姓氏轉換為大寫。

SELECT 
    UPPER(last_name)
FROM
    employees
ORDER BY UPPER(last_name);Code language: SQL (Structured Query Language) (sql)

此查詢只是從 employees 資料表中讀取資料,並即時轉換它們。 資料表中的資料保持不變。

若要將資料庫資料表中的資料轉換為大寫,您可以使用 UPDATE 陳述式。 例如,以下陳述式會將員工的電子郵件更新為大寫。

UPDATE employees 
SET 
    email = UPPER(email);Code language: SQL (Structured Query Language) (sql)
SQL UPPER exmaple

使用 UPPER 函數進行不區分大小寫的資料查詢

當您使用 WHERE 子句查詢資料時,資料庫系統通常會區分大小寫來比對資料。 例如,字串常值 Brucebruce 不同。

以下 查詢 不會回傳任何結果。

SELECT 
    employee_id, 
    first_name
FROM
    employees
WHERE
    first_name = 'BRUCE';Code language: SQL (Structured Query Language) (sql)

若要進行不區分大小寫的資料比對,您可以使用 UPPER 函數。 例如,以下查詢將回傳一列

SELECT 
    employee_id, 
    first_name
FROM
    employees
WHERE
    UPPER(first_name) = 'BRUCE';Code language: SQL (Structured Query Language) (sql)
SQL UPPER function example

請注意,上述查詢會掃描整個資料表以尋找符合的列。 如果資料表很大,查詢速度會非常慢。

為了解決這個問題,某些資料庫系統提供了基於函數的索引,允許您根據一或多個欄位的函數定義索引,以獲得更好的查詢效能。

在本教學中,您已學習如何使用 SQL UPPER 函數將字串轉換為大寫。

這個教學對您有幫助嗎?