ホームページ > データベース > mysql チュートリアル > SQL ユーザー定義関数を使用して文字列から数値を抽出するにはどうすればよいですか?

SQL ユーザー定義関数を使用して文字列から数値を抽出するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-21 01:47:08
オリジナル
634 人が閲覧しました

How Can I Extract Numbers from Strings Using a SQL User-Defined Function?

ユーザー定義関数を使用した SQL の文字列からの数値データの抽出

このガイドでは、SQL ユーザー定義関数 (UDF) を作成して文字列から数字のみを効率的に抽出する方法を説明します。 これは、データのクリーニングと操作における一般的なタスクです。

UDF の作成:

次の SQL コードは、文字列を入力として受け取り、抽出された数値部分を返す dbo.udf_GetNumeric という名前の UDF を定義します。

<code class="language-sql">CREATE FUNCTION dbo.udf_GetNumeric
(
  @strAlphaNumeric VARCHAR(256)
)
RETURNS VARCHAR(256)
AS
BEGIN
    DECLARE @intAlpha INT
    SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)
    BEGIN
        WHILE @intAlpha > 0
        BEGIN
            SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )
            SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric )
        END
    END
    RETURN ISNULL(TRIM(@strAlphaNumeric), '0')
END</code>
ログイン後にコピー

UDF の適用:

UDF が作成されたら、次の SELECT ステートメントを使用してテーブル内の列に適用します。

<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) AS ExtractedNumber
FROM table_name;</code>
ログイン後にコピー

column_name を文字列を含む列の実際の名前に置き換え、table_name をテーブルの名前に置き換えます。 結果は、数値のみを含む新しい列 ExtractedNumber になります。

例:

次のサンプル データについて考えてみましょう:

String 1 String 2 String 3
003Preliminary Examination Plan Coordination005 Balance1000sheet

UDF を適用すると、出力は次のようになります:

String 1 String 2 String 3
003 005 1000

機能説明:

dbo.udf_GetNumeric 関数は、PATINDEX を使用して最初の非数値文字を見つけます。 次に、STUFF 関数によってその文字が削除されます。このプロセスは、数字以外の文字がすべて削除され、数字だけが残るまで繰り返されます。 ISNULL 関数と TRIM 関数は、潜在的な null 値と先頭/末尾のスペースを処理します。

さらなる機能強化 (将来のアップデート): この機能のより詳細な説明と潜在的な改善点は、将来のアップデートで追加される予定です。

以上がSQL ユーザー定義関数を使用して文字列から数値を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート