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

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

Linda Hamilton
Linda Hamilton原創
2025-01-21 01:51:08604瀏覽

How Can I Extract Numbers from Alphanumeric Strings in SQL?

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

問題:

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

  • 003Preliminary Examination Plan
  • Coordination005
  • Balance1000sheet

您希望檢索:

  • 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn