sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLで大文字を含む行を見つける4つの方法

    PostgreSQLで大文字を含む行を返すための4つのオプションを次に示します。

    サンプルデータ

    次のデータを含むテーブルがあるとします。

    SELECT c1 FROM t1;

    結果:

           c1       
    ----------------
     CAFÉ
     Café
     café
     1café
     eCafé
     James Bond 007
     JB 007
     007
     null
     
     É
     É 123
     é
     é 123
     ø
     Ø

    次のメソッドを使用して、大文字を含む行を返すことができます。

    オプション1:POSIX文字クラスと比較

    ~を使用できます 正規表現パターンの大文字と小文字を区別する一致を実行する演算子。パターンは、必要に応じて単純または複雑にすることができます。

    簡単なオプションは、列を[:upper:]と比較することです。 POSIX文字クラス:

    SELECT c1 FROM t1
    WHERE c1 ~ '[[:upper:]]';

    結果:

           c1       
    ----------------
     CAFÉ
     Café
     eCafé
     James Bond 007
     JB 007
     É
     É 123
     Ø

    オプション2:LOWER()と比較します 文字列

    もう1つのオプションは、LOWER()を使用することです。 元の値を同等の小文字と比較する関数:

    SELECT c1 FROM t1
    WHERE LOWER(c1) <> c1;

    結果:

           c1       
    ----------------
     CAFÉ
     Café
     eCafé
     James Bond 007
     JB 007
     É
     É 123
     Ø

    等しくない(<>を使用する )演算子(代わりに!=を使用できます <>の代わりに 必要に応じて)、同等の小文字とは異なる行のみを返します。これを行う理由は、値が同等の小文字と同じである場合、そもそもすでに小文字であるためです(そして、それを返したくないのです)。

    デフォルトでは、PostgreSQLは大文字と小文字を区別して照合を実行するため、必要な結果を得るために大文字と小文字を区別する照合を指定する必要はありません。

    オプション3:実際の文字と比較する

    もう1つのオプションは、 ~を使用することです。 照合する各大文字を明示的に含む正規表現パターンを持つ演算子:

    SELECT c1 FROM t1
    WHERE c1 ~ '[ABCDEFGHIJKLMNOPQRSTUVWXYZ]';

    結果:

           c1       
    ----------------
     CAFÉ
     Café
     eCafé
     James Bond 007
     JB 007

    この場合、前の例よりも少ない行が返されます。 Éのような文字を指定しなかったためです およびØ 、これらの例で返されました。結果にはÉが含まれています ただし、その行が返されたのは、実行する他の大文字も含まれているためです。 一致します。

    したがって、このオプションは前のオプションよりも制限されていますが、一致させたい文字をより細かく制御できます。

    オプション4:文字の範囲と比較する

    または、一致させる文字の範囲を指定することもできます:

    SELECT c1 FROM t1
    WHERE c1 ~ '[A-Z]';

    結果:

           c1       
    ----------------
     CAFÉ
     Café
     eCafé
     James Bond 007
     JB 007

    1. 複数の行を1つの行にマージします

    2. Oracleの値のリストから選択するにはどうすればよいですか

    3. SQL Serverにリンクサーバーログインを追加する(T-SQLの例)

    4. GUIを使用してMySQLWorkbenchでユーザー権限を確認する方法