SELECT inputString, SUBSTRING( inputString, 1,42) + SUBSTRING( inputString, 105,16)FROM (SELECT 'BUILTIN\ADMINISTRATORS: [System Admin]YES;[Security Admin];[Server Admin];[setup Admin];[Process Admin];[Disk Admin]YES;[Database Creator]' AS inputString) Input
DECLARE @pString VARCHAR(MAX) = 'BUILTIN\ADMINISTRATORS: [System Admin]YES;[Security Admin];[Server Admin];[setup Admin];[Process Admin];[Disk Admin]YES;[Database Creator];'DECLARE @pDELIMITER CHAR(1) = ';';WITH SPLITS AS (SELECT ItemNumber = ROW_NUMBER() OVER (ORDER BY t.N), Item = SUBSTRING(@pString, t.N, CHARINDEX(@pDelimiter, @pString + @pDelimiter, t.N) - t.N) FROM dbo.Tally as t WHERE t.N <= DATALENGTH(@pString)+1 --DATATLENGTH allows for trailing space delimiters AND SUBSTRING(@pDelimiter + @pString, t.N, 1) = @pDelimiter)SELECT ItemFROM SPLITSWHERE ITEM Like '%YES'ORDER BY ItemNumber
NT AUTHORITY\SYSTEM: [System Admin]YES;[Security Admin];[Server Admin];[setup Admin];[Process Admin];[Disk Admin];[Database Creator]NT SERVICE\MSSQL$instance1: [System Admin]YES;[Security Admin];[Server Admin];[setup Admin];[Process Admin];[Disk Admin];[Database Creator]NT SERVICE\SQLAGENT$instance1: [System Admin]YES;[Security Admin];[Server Admin];[setup Admin];[Process Admin];[Disk Admin];[Database Creator]YES
NT AUTHORITY\SYSTEM: [System Admin]YES;NT SERVICE\MSSQL$instance1: [System Admin]YES;NT SERVICE\SQLAGENT$instance1: [System Admin]YES;[Database Creator]YES;
SELECT inputString, SUBSTRING( inputString, 1,42) + SUBSTRING( inputString, 105,16)FROM (SELECT 'NT SERVICE\SQLAGENT$instance1: [System Admin]YES;[Security Admin];[Server Admin]YES;[setup Admin];[Process Admin];[Disk Admin]YES;[Database Creator]YES' AS inputString) Input
NT SERVICE\SQLAGENT$instance1: [System Adess Admin];[Disk
DECLARE @pString VARCHAR(MAX) = 'BUILTIN\ADMINISTRATORS: [System Admin]YES;[Security Admin];[Server Admin];[setup Admin];[Process Admin];[Disk Admin]YES;[Database Creator];'SELECT Result= (SELECT item + CASE itemnumber WHEN 1 THEN ': ' ELSE ';' END FROM dbo.DelimitedSplit8K(REPLACE(@pString, ': ', ';'), ';') WHERE RIGHT(item, 3) = 'YES' OR itemnumber = 1 FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)')
Declare @String Varchar(Max) = 'BUILTIN\ADMINISTRATORS: [System Admin]YES;[Security Admin];[Server Admin];[setup Admin];[Process Admin];[Disk Admin]YES;[Database Creator]'Select STUFF(STUFF(@String, 42, 62, ''), 59, 18, '')Select Replace(REPLACE(@String, '[Security Admin];[Server Admin];[setup Admin];[Process Admin];', ''), '[Database Creator]', '')
'BUILTIN\ADMINISTRATORS: [System Admin];[Security Admin];[Server Admin]YES;[setup Admin];[Process Admin]YES;[Disk Admin];[Database Creator]YES'