【发布时间】:2015-10-03 03:02:48
【问题描述】:
我有一个按以下顺序包含 ID 和位的表:
ID Bit
1 0
1 0
1 1
1 0
1 0
1 0
1 1
1 0
1 1
1 0
1 ...
... ...
2 0
2 1
2 0
2 0
2 1
2 0
2 0
2 0
2 1
2 0
2 ...
... ...
n ...
如何使用 CTE 对 ID 列进行分组并将 Bit 列连接到 varbinary 列?
ID Bits
1 0x...
2 0x...
提前谢谢...
【问题讨论】:
-
首先您必须知道,您的表中没有固有的排序顺序。有人可能提供的任何解决方案都可能产生随机结果。您必须在您的表格中添加一列“位置”(或类似的)!有了这个,我很快就会提供一个例子。
-
您能否将示例结果充实位?你对 MSB/LSB 的期望并不明显,如何处理不以 8 的倍数出现的位,...。
-
相同
ID的位数上限是否小于64?这样可以很容易地将这些值组合到BIGINT中,然后将其改组为VARBINARY。 -
每个 ID 最多可以有 1920 位。所以我需要一个最大的varbinary。 240 字节。
-
@Shnugo:你是对的。我需要一个职位栏。我有一个订单栏,但我没有写下来,对不起。
标签: sql-server tsql sql-server-2008-r2 common-table-expression