SQLで文字列を置換する

Sqlde Wen Zi Liewo Zhi Huansuru



開発者がテキスト データまたは文字列と呼んでいるものは、関数型プログラムの主要な構成要素です。データの保存に関してもこれは変わりません。ほぼすべてのデータベースには、名前やログなどの何らかの形式のテキスト情報が含まれています。

したがって、文字列操作は、文字列値を操作して特定の形式に変換する一般的なタスクです。

文字列操作を処理する SQL の最も強力な関数の 1 つは、REGEXP_REPLACE() 関数です。この関数を使用すると、正規表現ベースの検索と置換を実行できます。正規表現に精通している場合は、この関数がいかに強力であるかがわかるでしょう。







このチュートリアルでは、この関数を使用して SQL データベース内の文字列を検索および置換する方法を学びます。



SQL REGEXP_REPLACE

SQL REGEXP_REPLACE() は、指定された文字列内で正規表現ベースのパターン マッチングと置換を実行できるようにする関数です。



正規表現または正規表現は、特定のパターンに従う文字列または部分文字列を照合および操作できるようにするセットのパターンとプレースホルダーです。





各データベース エンジンが関数の構文と機能をわずかに実装している可能性があることに留意することをお勧めします。

ただし、その構文は次のように表現できます。



REGEXP_REPLACE(入力文字列, パターン, 置換 [, フラグ])

関数のパラメータは次のように表されます。

  1. input_string – 検索および置換する文字列を指定します。
  2. パターン – 入力文字列内で照合する正規表現パターンを指定します。
  3. 置換 – 一致した部分文字列を置換する文字列を指定します。
  4. フラグ – 正規表現の機能を変更するのに役立つオプションのフラグのセット。たとえば、グローバル検索、大文字と小文字を区別しないマッチングなどを有効にすることができます。この機能はデータベース エンジンによって異なります。

例:

この関数がどのように機能するかをより深く理解するために、その使用方法の例をいくつか見てみましょう。

例 1: 基本的な使用法

次の出力例に示すように、従業員情報を含むテーブルがあるとします。

「Charlie」という文字列の出現を「Matthew」に置き換えたい場合を考えてみましょう。クエリは次のように使用できます。

選択する

REGEXP_REPLACE(first_name, 'Charlie', 'Matthew') AS new_name

から

従業員;

指定された例は、「first_name」列から「Charlie」という文字列を見つけて「Matthew」に置き換える基本的な検索と置換を示しています。

出力:

例 2: 大文字と小文字を区別しない置換

場合によっては、大文字と小文字を区別しない検索を実行することが必要になる場合があります。これは、関数が実際の英数字の大文字と小文字の区別ではなく、文字列の内容のみを確認することを意味します。

このような場合、次のように「i」を関数フラグとして使用します。

SELECT REGEXP_REPLACE(product_description, Samsung, Apple, 'i') AS 変更済み

製品から。

フラグを「i」に設定すると、この関数は大文字と小文字に関係なく、「Samsung」に一致するすべての単語と一致します。

結論

この例では、REGEXP_REPLACE() 関数を使用して操作し、正規表現パターン ベースの検索と置換を実行する方法を検討しました。