从字符串模式中提取数字

时间:2017-05-16 10:12:34

标签: sql sql-server

我有一个这样的字符串:_999_123456_8888888-123564578

由此我需要在上述模式中以123456的位置提取数据。

下划线已修复 - 只需要第二个和第三个_之间的数据

2 个答案:

答案 0 :(得分:3)

正如您在评论中提到的那样,下划线是固定的,需要第二个和第三个下划线之间的数据,您可以使用PARSENAME来获取预期的数据。

示例执行:

DECLARE @TestString AS VARCHAR (200) = '_999_123456_8888888-123564578'; 
SELECT PARSENAME(REPLACE(@TestString, '_', '.'), 2)

答案 1 :(得分:1)

这可能有助于你

Declare @Number Varchar(max)='_999_123456_8888888-123564578'
Declare @ExtractNumber Varchar(20)='123456' -- Give number your required without specialcharecters
SELECT SUBSTRING(@Number,CHARINDEX(@ExtractNumber,@Number),Len(@ExtractNumber))As ExtractedValue

输出

ExtractedValue
-------------
123456