SQL の英数字文字列から数値を抽出します
質問:
英数字を含む文字列がいくつかあり、数値のみを抽出する必要があります。たとえば、次の文字列があるとします:
検索したい内容:
解決策:
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 サイトの他の関連記事を参照してください。