У меня есть унаследованные пользовательские данные, которые мне нужно дезинфицировать. Первоначально он был в базе данных 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, где они принадлежат к группе Air, или это может быть 6 когда они принадлежат как воздуху, так и растениям (2 + 4).
Я создал таблицу, которая содержит поле идентификатора пользователя.
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
I будет в конечном итоге
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
бы начать возвращение данных по линиям, что мне нужно, но я не уверен, что это правильный путь.
Edit: Я открыт для использования внешнего кода, если это то, что требуется - не обязательно должно быть сделано с помощью команд SQL/запросов
Ничего себе. Спасибо! –
Было бы возможно добавить столбец со списком выбранных групп, поэтому, если бы у Карла был Air и Plants, счет был бы равен 2? –
@MhluziBhaka, см. Внизу отредактированного ответа –