SQL 中从字母数字字符串中提取数字
问题:
您有一些包含字母数字字符的字符串,您需要只提取数字值。例如,给定以下字符串:
您希望检索:
解决方案:
要使用 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中文网其他相关文章!