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

PostgreSQLで値に少なくとも1桁の数字が含まれているかどうかを検出する

    次の例は、PostgreSQLで少なくとも1つの数字を含むすべての行を返します。

    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           
    ---------------------------------
     Bottomless Coffee Mugs (4 Pack)
     Smash 2000 Sledge Hammer
     Chainsaw (3 spare fingers)

    予想どおり、数値を含む行のみが返されます。

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

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


    1. PostgreSQL:PostgreSQLデータベースのユーザーにすべての権限を付与します

    2. ORA-00604 ORA-12705

    3. MySQLとMongoDB1000の読み取り

    4. SQL Server(SSMS)のデータベースの互換性レベルを確認/変更する