SQL道場 文字列関数 UPPER/UCASE関数

SQLで英文字を大文字に変換するUPPER/UCASE関数について記載しています。

対応データベースSQL Server MySQL Oracle PostgreSQL DB2 SQLite Access ANSI

UPPER/UCASE関数の文法

SELECT UPPER(文字列) FROM テーブル
SELECT UCASE(文字列) FROM テーブル
引数文字列文字列型
返値文字列型 変換後の文字列が戻ります。

SQL Server

引数文字列文字データまたはバイナリ データの式を指定します。
引数には定数、変数、または列を指定できます。 引数に暗黙的に変換できるデータ型である必要があります varcharです。
それ以外の場合は、CAST を指定して明示的に 引数を変換します。
返値varchar または nvarchar

UPPER関数は英文字を小文字に変換します。MySQL、DB2、AccessではUCASE関数も使用でき、UPPER関数と同じ結果になります。Oracle、SQL Serverでは2バイトの英文字も大文字に変換できます。また、文字列が NULL の時は NULL が返ります。

英文字を小文字に変換する場合はLOWER/LCASE関数を使用します。

MySQL

現在の文字セットのマッピングに従って、すべての文字が大文字に変更された文字列 str を返します。 デフォルトは utf8mb4 です。

https://dev.mysql.com/doc/refman/8.0/ja/string-functions.html#function_upper

実行例

WORKテーブルが以下の場合、英文字を小文字に変換します。

STR
apple
peach
grape
APPLE
PEACH
GRAPE

MySQLの実行例

/* SQLで英文字を大文字に変換するサンプル */
SELECT STR,UPPER(STR) FROM testdb.WORK;
SELECT STR,UCASE(STR) FROM testdb.WORK;

UPPER関数

UPPER/UCASE関数サンプル実行結果

UCASE関数

UPPER/UCASE関数サンプル実行結果

一文字目だけ大文字にして、残りの文字を小文字にする方法

/* 一文字目だけ大文字にして、残りの文字を小文字にするサンプル */
SELECT STR,CONCAT(UPPER(LEFT(STR,1)),LOWER(SUBSTRING(STR, 2))) FROM testdb.WORK;
UPPER/UCASE関数サンプル実行結果

SQLServerの実行例

/* SQLで英文字を大文字に変換するサンプル */
SELECT STR,UPPER(STR) FROM [testdb].[dbo].[WORK];
UPPER/UCASE関数サンプル実行結果