首頁 > 資料庫 > mysql教程 > 如何在 SQL 中從字母數字字串中提取數字?

如何在 SQL 中從字母數字字串中提取數字?

Linda Hamilton
發布: 2025-01-21 01:51:08
原創
647 人瀏覽過

How Can I Extract Numbers from Alphanumeric Strings in SQL?

SQL 中從字母數字字串中提取數字

問題:

您有一些包含字母數字字元的字串,您需要只提取數字值。例如,給定以下字串:

  • 003Preliminary Examination Plan
  • Coordination005
  • Balance1000sheet

您希望檢索:

  • 003
  • 005
  • 1000

解:

要使用 SQL 從字串中提取數字,您可以使用使用者定義函數 (UDF)。建立以下 UDF:

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
登入後複製

用法:

建立 UDF 後,您可以使用它從字串中提取數字:

SELECT dbo.udf_GetNumeric(column_name)
FROM table_name
登入後複製

例如:

SELECT dbo.udf_GetNumeric('003Preliminary Examination Plan')
登入後複製

參考:

注意:

此解決方案將數字輸出為字串。如果您需要整數,可以使用 CAST() 函數進行轉換。 上述程式碼已進行簡化,避免了不必要的複雜邏輯,並確保函數始終傳回一個值。

以上是如何在 SQL 中從字母數字字串中提取數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板