Sql server 2008 r2 CHARINDEX和两个管道之间的子字符串
我在表中有一个字符串: S-1-5-21-109290937-1013972632-435976164-15678 | l.smith | DOMAIN-UK | 0x95231 | 1 我需要提取第一个和第二个|之间的数据 因此,从上面看,它将只返回l.smith。Sql server 2008 r2 CHARINDEX和两个管道之间的子字符串,sql-server-2008-r2,substring,Sql Server 2008 R2,Substring,我在表中有一个字符串: S-1-5-21-109290937-1013972632-435976164-15678 | l.smith | DOMAIN-UK | 0x95231 | 1 我需要提取第一个和第二个|之间的数据 因此,从上面看,它将只返回l.smith。 我尝试了各种CHARINDEX和子字符串,但总是出错,字符串的长度也会发生变化,因此我无法修剪其他字符串。我刚刚尝试了这个,希望这就是您要找的 DECLARE @VALUE VARCHAR(MAX) = 'S-1-5-21-109
我尝试了各种
CHARINDEX
和子字符串
,但总是出错,字符串的长度也会发生变化,因此我无法修剪其他字符串。我刚刚尝试了这个,希望这就是您要找的
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);
如果这在第一根管道上起作用,我如何让它在下一根管道上起作用,依此类推?