SUBSTRING(B.F_Code, PATINDEX('%[0-9]%', B.F_Code), PATINDEX('%[^0-9]%', B.F_Code + 'X') - PATINDEX('%[0-9]%', B.F_Code)) AS NumericPart
第一个PATINDEX('%[0-9]%', B.F_Code) 找到数字开头的起始位置
这个PATINDEX('%[^0-9]%', B.F_Code + 'X') 把这个字段拼接上一个字母,保证一定能找到一个非数字
然后非数字位置减去数字位置就能拿到截取截止位置
PATINDEX('%[^0-9]%', B.F_Code + 'X') - PATINDEX('%[0-9]%', B.F_Code)