我有一列字符串和整数的混合物
E.g DQ1-12987, DQQ-12367, DS18768, AS-10383B
我只需要从列中提取整数,但是如果数据在“-”之前有整数,我不想考虑那个整数。
e.g DQ1-12987 should be 12987 or DQQ-12387 should be as 12387
我使用下面的代码,但这不是给我正确的结果。
Create Function dbo.GetNumbers(@Data VarChar(8000))
Returns VarChar(8000)
AS
Begin
Return Left(
SubString(@Data, PatIndex('%[0-9]%', @Data), 8000),
PatIndex('%[^0-9]%', SubString(@Data, PatIndex('%[0-9]%', @Data), 8000) + 'X')-1)
End
我怎样才能做到这一点
2条答案
按热度按时间7gs2gvoe1#
这就是你想要的吗?
xxhby3vn2#
为此,请获取patextract8k的副本。那就容易了。
在一根弦上看起来是这样的:
退货:
靠着table:
返回(为简洁起见截断):
该函数运行速度非常快,将成为性能上的任何标量自定义项。