SQLで特定の文字種類のみを絞り込む際は、正規表現や特定の文字範囲を利用します。
そこで、いくつかのデータベースでのSQLの書き方を整理してみたいと思います。
mysqlで漢字のカラムのみに絞り込むSQL
SELECT * FROM テーブル名 WHERE カラム名 REGEXP '^[一-龠]+'
PostgreSQLで漢字のカラムのみに絞り込むSQL
SELECT * FROM テーブル名 WHERE カラム名 ~ '^[一-龠]+'
SQL Serverで漢字のカラムのみに絞り込むSQL
SQL Serverには直接的な正規表現のサポートがありません。
しかし、ワイルドカードを利用する方法やCLR統合を活用する方法など、いくつかの回避策が存在します。
ただ、このような簡単な絞り込みには不向きです。
Oracleで漢字のカラムのみに絞り込むSQL
SELECT * FROM テーブル名 WHERE REGEXP_LIKE(カラム名, '^[一-龠]+')
これらのクエリは、指定されたカラムに漢字のみが含まれる行を取得します。
もちろん、この正規表現は完璧ではないため、漢字の範囲に変動がある場合や環境によっては調整が必要です。
SQLiteで漢字のカラムのみに絞り込むSQL
SELECT * FROM テーブル名 WHERE カラム名 REGEXP '^[一-龠]+'
コメント