SQL道場 文字列関数 LOWER/LCASE関数

SQLで英文字を小文字に変換するLOWER/LCASE関数について記載しています。

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

LOWER/LCASE関数の文法

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

SQL Server

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

LOWER関数は英文字を小文字に変換します。MySQL、DB2、AccessではLCASE関数も使用できます。Oracle、SQL Serverでは2バイトの英文字も小文字に変換できます。英文字を大文字に変換する場合はUCASE/UPPER関数を使用します。

MySQL

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

LOWER() (および UPPER()) をバイナリ文字列 (BINARY、VARBINARY、BLOB) に適用しても、何の効果もありません。 バイナリ文字列の大文字と小文字の変換を実行するには、まず文字列に格納されているデータに適した文字セットを使用して、非バイナリ文字列に変換します

Unicode 文字セットの照合の場合、LOWER() および UPPER() は、照合名の Unicode 照合アルゴリズム (UCA) バージョン (存在する場合) および UCA 4.0.0 (バージョンが指定されていない場合) に従って動作します。 たとえば、utf8mb4_0900_ai_ci と utf8_unicode_520_ci はそれぞれ UCA 9.0.0 と 5.2.0 に従って動作し、utf8_unicode_ci は UCA 4.0.0 に従って動作します。

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

実行例

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

STR
apple
peach
grape
APPLE
PEACH
GRAPE

MySQLの実行例

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

LOWER関数

LOWER/LCASE関数サンプル実行結果

LCASE関数

LOWER/LCASE関数サンプル実行結果

SQLServerの実行例

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