我有一个表格,如下面的结构
ID |A |B
A1 |33|
A2 |56|
A3 |56|33
A4 |66|
A5 |66|33
A6 |95|33
A7 |95|
A8 |95|
A9 |22|
A10| |22
如何根据A和B中的值对ID进行分组,以便将单个ID分配给按A和B中的值互连的所有行?
期望的输出
ID |A |B |Grp
A1 |33| |1
A2 |56| |1
A3 |56|33|1
A4 |66| |1
A5 |66|33|1
A6 |95|33|1
A7 |95| |1
A8 |95| |1
A9 |22| |2
A10| |22|2
答案 0 :(得分:0)
我很确定你不能一步到位。这是一个多步骤的方法。它并不意味着高效,所以希望这是一次性操作。
使用A&中所有不同值的光标填充临时表。 B.在光标内部,您查询原始表以查找与您当前正在查看的值配对的任何值。找到一个时,将它与单独的字符串变量中的当前值连接起来。完成后,临时表应如下所示:
Grp Values
1 |33|56|66|95|
2 |22|
然后获取所需的输出是一个简单的事情,即执行LIKE或CHARINDEX以将原始表中的A或B列与临时表中的值匹配。