「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > SQLの文字列から数値を抽出するにはどうすればよいですか?

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

2025-02-04に公開
ブラウズ:544

How Can I Extract Numeric Values from Strings in SQL?

文字列から数値データを抽出します

データベース環境では、埋め込まれた数値データを文字列から抽出する必要がある場合があります。次の例を考えてみましょう:

文字列1:003preliminary診断計画 文字列2:Coordination005 文字列3:balance1000sheet

字符串 1: 003Preliminary Examination Plan   
字符串 2: Coordination005  
字符串 3: Balance1000sheet

文字列1:003 文字列2:005 文字列3:1000

字符串 1: 003
字符串 2: 005
字符串 3: 1000
function dbo.udf_getnumericを作成します (() @Stralphanumeric varchar(256) 治す varcharを返す(256) として 始める @intalpha intを宣言します setalpha = patindex( '%[^0-9]%'、@Stralphanumeric) 始める @intalpha> 0 始める @strachanumeric = fort(@stralphanumeric、@intalpha、1、 ''を設定します) setalpha = patindex( '%[^0-9]%'、@Stralphanumeric) 終わり 終わり return isnull(trim(@stralphanumeric)、 '0') 終わり 行く

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

select dbo.udf_getnumeric(column_name) table_name

から

これは、指定された列の指定された文字列のデジタル部分のみを返します。提供されたデータの例では、結果は期待値と一致します:
SELECT dbo.udf_GetNumeric(column_name) 
from table_name

注:

元のコード
003
005
1000
]。 この修正機能は、より明確かつ理解し、維持しやすくなります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3