首页 >数据库 >mysql教程 >如何使用 SQL 从字符串中提取数字?

如何使用 SQL 从字符串中提取数字?

DDD
DDD原创
2025-01-21 01:42:09658浏览

How to Extract Numbers from Strings Using SQL?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn