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関数
LCASE関数
SQLServerの実行例
/* SQLで英文字を小文字に変換するサンプル */
SELECT STR,LOWER(STR) FROM [testdb].[dbo].[WORK];