SQL字串中數字的擷取
問題:
寫一個SQL查詢,從給定的字串中提取僅數字值。例如,給定輸入字串“003Preliminary Examination Plan”、“Coordination005”和“Balance1000sheet”,期望的輸出分別為“003”、“005”和“1000”。
解:
為了完成此任務,我們可以利用使用者定義函數 (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), '') END GO</code>
現在,我們可以在查詢中使用此UDF:
<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) FROM table_name</code>
此高階方法有效地從SQL中的字串中提取數字值。 請注意,此修改後的UDF處理了空值和僅包含非數字字元的情況,傳回空字串而不是0。
以上是如何使用 SQL 從字串中提取數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!