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
現在の文字セットのマッピングに従って、すべての文字が大文字に変更された文字列
https://dev.mysql.com/doc/refman/8.0/ja/string-functions.html#function_upperstr
を返します。 デフォルトはutf8mb4
です。
実行例
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関数

UCASE関数

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

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