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

SQL で英数字文字列から数値を抽出するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-21 01:51:08
オリジナル
499 人が閲覧しました

How Can I Extract Numbers from Alphanumeric Strings in SQL?

SQL の英数字文字列から数値を抽出します

質問:

英数字を含む文字列がいくつかあり、数値のみを抽出する必要があります。たとえば、次の文字列があるとします:

  • 003一次試験計画
  • コーディネート005
  • 残高1000シート

検索したい内容:

  • 003
  • 005
  • 1000

解決策:

SQL を使用して文字列から数値を抽出するには、ユーザー定義関数 (UDF) を使用できます。次の 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
GO</code>
ログイン後にコピー

使用法:

UDF を作成したら、それを使用して文字列から数値を抽出できます。

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

例:

<code class="language-sql">SELECT dbo.udf_GetNumeric('003Preliminary Examination Plan')</code>
ログイン後にコピー

参照:

注:

このソリューションは数値を文字列として出力します。整数が必要な場合は、CAST() 関数を使用して整数を変換できます。 上記のコードは、不必要な複雑なロジックを回避し、関数が常に値を返すように簡略化されています。

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

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