1
我继承了需要清理的用户数据。它最初是在MS Access数据库中,我需要将其转换为SQL Server。我现在在SQL Server中有表,但是有一列我需要帮助的数据。将按位数据转换为多列
有很多列,如名称,电子邮件等,这些都是非常简单的。
但是,有一列存储按位数据。此列将显示用户可以属于的组。在用户栏
All 1
Air 2
Plants 4
Energy 8
Land 16
Elec 32
Fire 64
Water 128
Cloud 256
Soil 512
Waste 1024
Local 2048
Coast 4096
的数据可能是2,他们属于中航集团,或者它可能是一个6:通过了多项纪录会我已经确定了这些团体和他们的相关数字是当他们属于空气和植物(2 + 4)。
我创建了一个包含用户ID字段的表。
User_ID
All
Air
Plants
Energy
Land
Elec
Fire
Water
Cloud
Soil
Waste
Local
Coast
所以我需要通过旧表进行迭代,然后在新表中的列插入对应的真实的值,因此
因此,如果数据是:
User_ID Name Group
1 Jo Smith 2
2 Carl White 8
我最终会以
User_ID All Air Plants Energy ....
1 true
2 true
等等。
然而,因为用户可以属于多个组数据看上去更像是这样的:
Jake C 1552
Jeff H 1556
Cath B 1561
Emma B 1564
Alex G 1572
Alan H 1574
Jo L 1596
Roy A 1600
如何着手建立我的新表?我曾经想过沿线
SELECT * FROM [dbo].[Users] where [Group] & 2 != 0
将开始带回我需要的数据,但我不确定这是否是正确的轨道。
编辑:我愿意利用外部代码,如果这是需要什么 - 不一定要与SQL命令来完成/查询
哇。谢谢! –
是否可以添加一列所选组的数量;所以如果卡尔有空气和植物,数量是2? –
@MhluziBhaka,见编辑答案 –