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

PostgreSQLで数値を含まない値を検索する

    次の例では、PostgreSQLに数値を含まないすべての行が返されます。

    数字は単語やその他の記号で表すことができますが、この記事では「数字」は単に「数字」を意味します。そのため、数字を含まない値を見つけています。

    Productsというテーブルがあるとします。 ProductNameに次のデータが含まれています 列:

    SELECT ProductName 
    FROM Products;

    結果:

               productname           
    ---------------------------------
     Left handed screwdriver
     Right handed screwdriver
     Long Weight (blue)
     Long Weight (green)
     Straw Dog Box
     Bottomless Coffee Mugs (4 Pack)
     Smash 2000 Sledge Hammer
     Chainsaw (3 spare fingers)

    この列には文字データが含まれていますが、一部の行にはその文字データ内に数値が含まれています(数値型として保存されていない場合でも)。

    次のクエリを使用して、数字を含まない行のみを返すことができます。

    SELECT ProductName 
    FROM Products
    WHERE ProductName !~ '[0-9]+';

    結果:

           productname        
    --------------------------
     Left handed screwdriver
     Right handed screwdriver
     Long Weight (blue)
     Long Weight (green)
     Straw Dog Box
    (5 rows)
    

    予想どおり、数字を含まない行のみが返されます。

    PostgreSQLでは、!~ 指定された正規表現と一致しない値を返すために使用される大文字と小文字を区別する演算子です。大文字と小文字を区別しない一致の場合は、!~*を使用します 。

    ~を使用できます 実行するすべての行を返す 正規表現に一致します(および~* 大文字と小文字を区別しない一致の場合)。


    1. パフォーマンスの神話:クラスター化インデックスと非クラスター化インデックス

    2. MYSQLでの正規化

    3. SQLServerのデータベース内のすべてのテーブルのAddColumnステートメントを生成する方法-SQLServer/T-SQLチュートリアルパート49

    4. jQueryリモートメソッドの使用を検証して、ユーザー名がすでに存在するかどうかを確認します