次の例では、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では、!~
指定された正規表現と一致しない値を返すために使用される大文字と小文字を区別する演算子です。大文字と小文字を区別しない一致の場合は、!~*
を使用します 。
~
を使用できます 実行するすべての行を返す 正規表現に一致します(および~*
大文字と小文字を区別しない一致の場合)。