TSQL перечислить все составляющие побитовые целые числа в пределах большего целого числа - PullRequest
2 голосов
/ 20 мая 2019

Во-первых, извинения за то, что здесь не используется правильная терминология.На самом деле я не знаю правильных терминов, и, таким образом, с треском не смог найти решение.Пожалуйста, примите мой пример в качестве вопроса, и я обновлю вопрос соответствующим образом, если кто-то может просветить меня (или удалить и прочитать фактическое решение там, где оно существует).

До настоящего времени мое исследование дало только сравнения отдельныхбиты в целом, вместо того, чтобы показывать все .

Учитывая набор целых чисел:

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

1 Ответ

1 голос
/ 20 мая 2019

Вы можете использовать побитовые операции:

SELECT *
FROM t
JOIN ELEMENT e
  ON t.ELEMENTS & e.w = e.w
ORDER BY MIXTURE, w;

дБ <> демонстрация скрипки

...