SQL: UPPER(), LOWER()関数による大文字小文字変換
SQLで文字列の大文字小文字を変更する
UPPER()
関数は、引数として渡された文字列をすべて大文字に変換します。
SELECT UPPER('abc'); -- 結果: ABC
SELECT LOWER('ABC'); -- 結果: abc
特定の文字列のみ変換
UPPER()
やLOWER()
関数とSUBSTRING()
関数を組み合わせて、特定の文字列のみ変換することもできます。
-- 氏名の苗字のみ大文字に変換
SELECT CONCAT(UPPER(SUBSTRING(name, 1, 2)), SUBSTRING(name, 3))
FROM users;
比較演算子との組み合わせ
大文字小文字を区別せずに比較したい場合は、UPPER()
やLOWER()
関数を比較演算子と組み合わせて使用できます。
SELECT *
FROM users
WHERE UPPER(name) = 'TANAKA';
上記の例では、name
列の値をすべて大文字に変換してから比較するため、TANAKA
とtanaka
は一致するものとして扱われます。
その他の関数
上記以外にも、INITCAP()
やLCASE()
などの関数を使って、文字列の大文字小文字を変更することができます。
INITCAP()
関数: 最初の文字のみ大文字に変換LCASE()
関数: すべての文字を小文字に変換
注意点
- 大文字小文字を変換する関数は、データベースによって異なる場合があります。
- 大文字小文字を変換すると、データの意味が変わってしまう可能性があります。変換する前に、データの意味をよく理解しておきましょう。
-- 1. `UPPER()`関数
SELECT UPPER('abc'), LOWER('ABC');
-- 結果:
-- ABC abc
-- 2. 特定の文字列のみ変換
SELECT CONCAT(UPPER(SUBSTRING('田中太郎', 1, 2)), SUBSTRING('田中太郎', 3));
-- 結果:
-- 田中太郎
-- 3. 比較演算子との組み合わせ
SELECT *
FROM users
WHERE UPPER(name) = 'TANAKA';
-- 4. その他の関数
SELECT INITCAP('abc'), LCASE('ABC');
-- 結果:
-- Abc abc
補足
練習問題
以下のSQLクエリを実行して、結果を確認してください。
-- 1. `UPPER()`関数
SELECT UPPER('こんにちは');
-- 2. `LOWER()`関数
SELECT LOWER('世界');
-- 3. 特定の文字列のみ変換
SELECT CONCAT(UPPER(SUBSTRING('日本', 1, 1)), SUBSTRING('日本', 2));
-- 4. 比較演算子との組み合わせ
SELECT *
FROM users
WHERE LOWER(name) = 'tanaka';
-- 5. その他の関数
SELECT INITCAP('tokyo'), LCASE('KYOTO');
SQLで文字列の大文字小文字を変更する他の方法
CASE式を使用すると、条件に応じて文字列の大文字小文字を変更することができます。
SELECT
CASE
WHEN name = '田中' THEN UPPER(name)
ELSE name
END
FROM users;
上記の例では、name
列の値が田中
の場合は大文字に変換し、それ以外の場合はそのまま表示します。
UPDATE users
SET name = UPPER(name)
WHERE name LIKE '%田中%';
上記の例では、name
列の値に田中
が含まれるものをすべて大文字に変換します。
SELECT REPLACE('田中太郎', '田中', UPPER('田中'));
-- 結果:
-- 田中太郎
上記の例では、田中太郎
という文字列中の田中
という文字列をすべて大文字に変換しています。
- 簡単な変換の場合は、
UPPER()
やLOWER()
関数を使うのが最も簡単です。 - 条件に応じて変換したい場合は、CASE式を使うと便利です。
- テーブル内のデータを大量に変更したい場合は、UPDATE文を使うと効率的です。
- 特定の文字列のみ変換したい場合は、REPLACE関数を使うと便利です。
SQLで文字列の大文字小文字を変更するには、さまざまな方法があります。状況に合わせて適切な方法を選択してください。
sql case uppercase