SQL 中從字母數字字串中提取數字
問題:
您有一些包含字母數字字元的字串,您需要只提取數字值。例如,給定以下字串:
您希望檢索:
解:
要使用 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中文網其他相關文章!