两个管道之间的CHARINDEX和SUBSTRING

时间:2016-12-02 12:17:06

标签: sql-server-2008-r2 substring

我在表格中有一个字符串:

S-1-5-21-109290937-1013972632-435976164-15678 | l.smith | DOMAIN-UK | 0x95231 | 1

我需要在第一个和第二个之间提取数据。

所以从上面它只返回l.smith。 我尝试了各种CHARINDEXSUBSTRINGS,但它总是出错,字符串的长度也会改变,所以我不能修剪其他的进行。

1 个答案:

答案 0 :(得分:3)

我刚试过这个,希望这就是你要找的,

DECLARE @VALUE VARCHAR(MAX) = 'S-1-5-21-109290937-1013972632-435976164-15678|l.smith|DOMAIN-UK|0x95231|1';
DECLARE @FIRSTINDEX INT = CHARINDEX('|',@VALUE,1);
SELECT 
SUBSTRING(@VALUE, @FIRSTINDEX+1, CHARINDEX('|',@VALUE,@FIRSTINDEX+1)-CHARINDEX('|',@VALUE,1)-1);