sql-server - 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 中实现这一点?
解决方案
您可以charindex()
使用patindex()
:
select substring(col, patindex('%[0-9]%', col),
len(col) - charindex(' ', col, patindex('%[0-9]%', col)) - 1
) as col
推荐阅读
- flutter - 通过自动格式化将 Dart/Flutter 函数链接到新行
- excel - VBA 数据输入表单获取运行时错误“91”:
- excel - 具有多个变量的 VBA Goalseek 循环
- html - 如何从选择框中显示选定的值?
- php - include_path='.:/usr/share/pear:/usr/share/php' 托管站点后出现错误
- reactjs - Form.Field 组件超出范围
- angular - 在 Angular 中,使用 WebPack 5 Module Federations,我们如何公开远程使用的 Web Worker?
- java - 如何推断 Drools 规则中的中间值
- mysql - 连接池中的连接从服务器超时时的行为如何
- java - 通过 Rest Template 从另一个 REST API 服务获取 JAXBElement 对象