首页 > 解决方案 > T-SQL 从字符串中提取数字以及介于两者之间的所有内容

问题描述

我正在使用 SQL Server 2014。

我了解如何使用 PATINDEX ( Query to get only numbers from a string ) 从字符串中提取数字,但是,如果它们实际上是我还需要提取的数字之间的字符串值,我将如何包括在内。例如;

这是我的字符串:

15-19 Smith Street
1-3 Smith Street

我需要:

15-19
1-3

此外,如果有后缀,我需要将其提取为单独的字段:

147a York Road

我需要 147 作为 1 个字段,字母 'a' 作为另一个

如何在 T-SQL 中实现这一点?

标签: sql-serverstringtsqlpatindex

解决方案


您可以charindex()使用patindex()

select substring(col, patindex('%[0-9]%', col), 
                      len(col) - charindex(' ', col, patindex('%[0-9]%', col)) - 1
                ) as col

推荐阅读