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