【SQL】SQL ~ 大文字 / 小文字が含まれているか判定 ~

■ はじめに

小ネタ。

SQLのテーブル調査をしていて、
大文字 / 小文字が含まれているか判定する必要があったのでメモ。

【1】大文字 / 小文字が含まれているか判定するには

[1] 大文字が含まれているかを判定

WHERE 【対象項目】 != LOWER(【対象項目】);

[2] 小文字が含まれているかを判定

WHERE 【対象項目】 != UPPER(【対象項目】);

【2】サンプル

* 試すDBがなければ、以下のサイトで行うといいかも、、、
* PostgreSQL15を想定

SQL Fiddle
https://www.db-fiddle.com/

1)使用データ

CREATE TABLE IF NOT EXISTS sample_table (
  id       INT,
  email    VARCHAR(50)
);

INSERT INTO sample_table (id,email) VALUES
  (1,'sample1@abc.com'),
  (2,'Sample2@ABC.com'),
  (3,'SAMPLE3@ABC.COM')
;

2)判定処理

[1] 大文字が含まれているかを判定

SELECT * FROM sample_table WHERE email != LOWER(email);
id email
2 Sample2@ABC.com
3 SAMPLE3@ABC.COM

[2] 小文字が含まれているかを判定

SELECT * FROM sample_table WHERE email != UPPER(email);
id email
1 sample1@abc.com
2 Sample2@ABC.com

参考文献

https://syanping.hatenablog.com/entry/2020/02/13/001310

関連記事

SQL ~ テーブル差分を調査することを考える ~
https://dk521123.hatenablog.com/entry/2024/09/22/220455
Snowflake ~ 文字列操作関連 ~
https://dk521123.hatenablog.com/entry/2022/10/01/000000