Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @table TABLE
- (
- ID INT
- ,Mask VARCHAR(8)
- )
- INSERT INTO @table
- SELECT 1, '1010011' UNION ALL
- SELECT 2, '0000111'
- SELECT T.ID, T.Mask
- ,STUFF((SELECT ', ' + CAST([Bit] AS VARCHAR(10)) [text()]
- FROM (
- SELECT [Bit]
- FROM (
- SELECT 1 AS [Bit]
- ,SUBSTRING(Mask, 1, 1) AS [Value]
- FROM @table M
- WHERE M.ID = T.ID
- UNION ALL
- SELECT 2 AS [Bit]
- ,SUBSTRING(Mask, 2, 1) AS [Value]
- FROM @table M
- WHERE M.ID = T.ID
- UNION ALL
- SELECT 3 AS [Bit]
- ,SUBSTRING(Mask, 3, 1) AS [Value]
- FROM @table M
- WHERE M.ID = T.ID
- UNION ALL
- SELECT 4 AS [Bit]
- ,SUBSTRING(Mask, 4, 1) AS [Value]
- FROM @table M
- WHERE M.ID = T.ID
- UNION ALL
- SELECT 5 AS [Bit]
- ,SUBSTRING(Mask, 5, 1) AS [Value]
- FROM @table M
- WHERE M.ID = T.ID
- UNION ALL
- SELECT 6 AS [Bit]
- ,SUBSTRING(Mask, 6, 1) AS [Value]
- FROM @table M
- WHERE M.ID = T.ID
- UNION ALL
- SELECT 7 AS [Bit]
- ,SUBSTRING(Mask, 7, 1) AS [Value]
- FROM @table M
- WHERE M.ID = T.ID
- UNION ALL
- SELECT 8 AS [Bit]
- ,SUBSTRING(Mask, 8, 1) AS [Value]
- FROM @table M
- WHERE M.ID = T.ID
- ) Mask
- WHERE Mask.Value = 1
- ) SetBits
- WHERE ID = t.ID
- FOR XML PATH(''), TYPE)
- .value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
- FROM @table T
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement