摘要:本教學將說明如何使用 SQL UPPER
函數將字串轉換為大寫。
SQL UPPER 函數簡介
SQL UPPER
函數會將字串中的所有字母轉換為大寫。 如果您想要將字串轉換為小寫,則改用 LOWER
函數。
UPPER
函數的語法如下所示,非常簡單。
UPPER(string);
Code language: SQL (Structured Query Language) (sql)
如果輸入字串為 NULL
,UPPER
函數會回傳 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
資料表。

以下 查詢 使用 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)

使用 UPPER 函數進行不區分大小寫的資料查詢
當您使用 WHERE
子句查詢資料時,資料庫系統通常會區分大小寫來比對資料。 例如,字串常值 Bruce
與 bruce
不同。
以下 查詢 不會回傳任何結果。
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
函數將字串轉換為大寫。
這個教學對您有幫助嗎?