我有一个位掩码值存储为int在sql中。我想将该值转换为位掩码值中包含的值的逗号分隔列表。
因此,例如,结果可能如下所示:
id name bitMaskValue values ---------------------------------------- 1 Bob 5 1,4 2 Mary 13 1,4,8 3 Stan 11 1,2,8
有没有一种方法可以在sql语句中完成此操作?
这是SQL Server 2008。
declare @I integer = 2117 Declare @v varChar(32) = '' Declare @Bit tinyInt = 0 while @I > 0 Begin Set @v += case @I %2 WHen 1 Then str(@bit,2,1) + ',' else '' End Set @Bit += 1 Set @i /= 2 End Select case When len(@v) > 0 Then left(@v, len(@v) -1) else '' End