【发布时间】:2019-05-20 14:26:37
【问题描述】:
首先,很抱歉在这里没有使用正确的术语。我实际上并不知道正确的术语,因此很难找到解决方案。请接受我的示例作为问题,如果有人可以启发我(或删除并阅读存在的实际解决方案),我会相应地更新问题。
到目前为止,我的研究仅对整体中的单个位进行比较,而不是显示所有。
给定一组整数:
ELEMENT
-----------
Bricks 1
Plaster 2
Cement 4
Concrete 8
我有一个结果集,提供了这些材料的使用方式:
MIXTURE ELEMENTS
----------------------
MixtureFoo 3
MixtureBar 7
MixtureBaz 11
我需要展示最终的混合物集,但要列出在相应混合物中使用的每个组成元素:
MIXTURE ELEMENTS ELEMENT
------------------------------
MixtureFoo 3 1
MixtureFoo 3 2
MixtureBar 7 1
MixtureBar 7 2
MixtureBar 7 4
MixtureBaz 11 1
MixtureBaz 11 2
MixtureBaz 11 8
【问题讨论】:
-
我假设您实际上并未设计此数据库,但如果可能,请考虑将设计更改为不使用位掩码。除了明显的维护问题(永远不能超过 64 个部分,值需要始终正确构造/解构),正如您所发现的那样,它们也不是要查询的野餐(这些查询也不是很快,通常)。将混合与元素链接的适当中间表允许自然连接(可以显式添加诸如“元素只能出现一次”之类的约束)。
-
是的,这个问题的发布是出于正是您指定的原因。迁移已经开始!
标签: sql-server tsql sql-server-2012 bitwise-operators