SQL 文字列からの数値の抽出
質問:
指定された文字列から数値のみを抽出する SQL クエリを作成します。たとえば、入力文字列「003 予備試験計画」、「調整 005」、および「残高 1000 シート」の場合、望ましい出力はそれぞれ「003」、「005」、「1000」になります。
解決策:
このタスクを達成するには、ユーザー定義関数 (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), '') END GO</code>
これで、この UDF をクエリで使用できるようになります:
<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) FROM table_name</code>
この高度な方法は、SQL の文字列から数値を効率的に抽出します。 この変更された UDF は null 値と、数値以外の文字のみを含むケースを処理し、0 の代わりに空の文字列を返すことに注意してください。
以上がSQL を使用して文字列から数値を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。