Advertisement
Guest User

Untitled

a guest
May 24th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. DECLARE @table TABLE
  2. (
  3. ID INT
  4. ,Mask VARCHAR(8)
  5. )
  6.  
  7. INSERT INTO @table
  8. SELECT 1, '1010011' UNION ALL
  9. SELECT 2, '0000111'
  10.  
  11.  
  12. SELECT T.ID, T.Mask
  13. ,STUFF((SELECT ', ' + CAST([Bit] AS VARCHAR(10)) [text()]
  14. FROM (
  15. SELECT [Bit]
  16. FROM (
  17. SELECT 1 AS [Bit]
  18. ,SUBSTRING(Mask, 1, 1) AS [Value]
  19. FROM @table M
  20. WHERE M.ID = T.ID
  21. UNION ALL
  22. SELECT 2 AS [Bit]
  23. ,SUBSTRING(Mask, 2, 1) AS [Value]
  24. FROM @table M
  25. WHERE M.ID = T.ID
  26. UNION ALL
  27. SELECT 3 AS [Bit]
  28. ,SUBSTRING(Mask, 3, 1) AS [Value]
  29. FROM @table M
  30. WHERE M.ID = T.ID
  31. UNION ALL
  32. SELECT 4 AS [Bit]
  33. ,SUBSTRING(Mask, 4, 1) AS [Value]
  34. FROM @table M
  35. WHERE M.ID = T.ID
  36. UNION ALL
  37. SELECT 5 AS [Bit]
  38. ,SUBSTRING(Mask, 5, 1) AS [Value]
  39. FROM @table M
  40. WHERE M.ID = T.ID
  41. UNION ALL
  42. SELECT 6 AS [Bit]
  43. ,SUBSTRING(Mask, 6, 1) AS [Value]
  44. FROM @table M
  45. WHERE M.ID = T.ID
  46. UNION ALL
  47. SELECT 7 AS [Bit]
  48. ,SUBSTRING(Mask, 7, 1) AS [Value]
  49. FROM @table M
  50. WHERE M.ID = T.ID
  51. UNION ALL
  52. SELECT 8 AS [Bit]
  53. ,SUBSTRING(Mask, 8, 1) AS [Value]
  54. FROM @table M
  55. WHERE M.ID = T.ID
  56. ) Mask
  57. WHERE Mask.Value = 1
  58. ) SetBits
  59. WHERE ID = t.ID
  60. FOR XML PATH(''), TYPE)
  61. .value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
  62. FROM @table T
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement