我们在实际开发中,有时候需要得到字符串中的数字位置,然后对字符串做处理。获取位置我们用PATINDEX方法,因为PATINDEX是支持正则表达式的,可以匹配数字,而类似CHARINDEX这种函数,只能查询匹配固定的字符串。
实现代码如下:
DECLARE @str NVARCHAR(255) = '京都大道1号402室'
SELECT PATINDEX('%[0-9]%', @str) AS 第一个数字位置 ,
LEN(@str) - PATINDEX('%[0-9]%', REVERSE(@str)) + 1 AS 最后一个数字位置
结果:
以上代码可以查询得到字符串中数字的位置。