2016-12-02 55 views
1

我有一個表中的字符串之間:CHARINDEX和SUBSTRING兩個管道

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

我需要提取第一個和第二個之間的數據| 。

所以從上面它只會返回l.smith。 我已經嘗試了各種CHARINDEXSUBSTRINGS但它總是錯誤的,字符串的長度也改變,所以我不能修剪其他|出。

回答

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);