如何拆分长度可变的部分字符串零件号的SQL列

时间:2019-03-21 15:29:32

标签: sql string split integer

我有一个使用字母和数字的ID列:例如A00055AI000075。 文本值按ASCII码升序排列,因此我将执行以下操作:

CAST((COALESCE(ASCII(SUBSTRING([FaultID],1,1)),SUBSTRING([FaultID],2,(len([FaultID])))))AS bigint) as FaultID1

然后我意识到字母的长度可以可变,为1-3个字符,因此,当我命中2个字母的值时,就会出错。有没有办法在第一个数字值上分割字符串?还是有解决此问题的更好方法?

1 个答案:

答案 0 :(得分:0)

我相信您可以使用PATINDEX(模式索引)代替CHARINDEX。

SELECT PATINDEX('%[0-9]%','MyString1111')

这将返回字符串中第一个数字值的从1开始的索引,然后您可以用它来分割字符串。

PATINDEX的文档为here