我有一个位掩码值作为 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。
这应该有效:
SELECT id, name, bitMaskValue,
SUBSTRING(
CASE WHEN bitMaskValue & 1 = 1 THEN ',1' ELSE '' END
+ CASE WHEN bitMaskValue & 2 = 2 THEN ',2' ELSE '' END
+ CASE WHEN bitMaskValue & 4 = 4 THEN ',4' ELSE '' END
+ CASE WHEN bitMaskValue & 8 = 8 THEN ',8' ELSE '' END
, 2, 64) As [values]
FROM yourTable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)