首頁 > 資料庫 > mysql教程 > 如何使用 SQL 使用者定義函數從字串中提取數字?

如何使用 SQL 使用者定義函數從字串中提取數字?

Patricia Arquette
發布: 2025-01-21 01:47:08
原創
634 人瀏覽過

How Can I Extract Numbers from Strings Using a SQL User-Defined Function?

使用使用者定義函數從 SQL 字串中擷取數字資料

本指南示範如何建立 SQL 使用者定義函數 (UDF) 以有效率地從字串中僅提取數字字元。 這是資料清理和操作中的常見任務。

建立 UDF:

以下 SQL 程式碼定義了一個名為 dbo.udf_GetNumeric 的 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</code>
登入後複製

應用 UDF:

建立 UDF 後,使用下列 SELECT 語句將其套用到表格中的欄位:

<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) AS ExtractedNumber
FROM table_name;</code>
登入後複製

column_name 替換為包含字串的欄位的實際名稱,將 table_name 替換為表格的名稱。 結果將會是一個新欄位 ExtractedNumber,僅包含數值。

範例:

考慮這個範例資料:

String 1 String 2 String 3
003Preliminary Examination Plan Coordination005 Balance1000sheet

應用 UDF 後,輸出將是:

String 1 String 2 String 3
003 005 1000

功能說明:

dbo.udf_GetNumeric 函數使用 PATINDEX 來定位第一個非數字字元。 然後 STUFF 函數刪除該字元。重複此過程,直到消除所有非數字字符,只留下數字。 ISNULLTRIM 函數處理潛在的空值和前導/尾隨空格。

進一步增強(未來更新):將在未來的更新中添加對此功能的更詳細說明和潛在改進。

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

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