我有一个这样的字符串:_999_123456_8888888-123564578
由此我需要在上述模式中以123456
的位置提取数据。
下划线已修复 - 只需要第二个和第三个_
之间的数据
答案 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