我陷入了一个复杂的问题。我知道它可以通过旋转来解决,但不知道如何去做。
数据如下:
------------------------------------------------------------------
| user_id | order_id | service | head | coordinatior | contract |
------------------------------------------------------------------
| 1020 | 3 | 105 | 1 | 1 | 1 |
| 364277 | 1 | 105 | 0 | 0 | 0 |
| 364277 | 3 | 105 | 0 | 0 | 0 |
| 367277 | 2 | 3763454 | 1 | 1 | 0 |
| 1020 | 1 | 3764142 | 0 | 1 | 1 |
| 1020 | 2 | 665443 | 0 | 1 | 1 |
------------------------------------------------------------------
这就是我希望按照顺序拥有的方式:
| user_id | service1 | head1 | coordinatior1 | contract1 | service2 | head2 | coordinatior2 | contract2 | service3 | head3 | coordinatior3 | contract3 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------
| 1020 | 3764142 | 0 | 1 | 1 | 665443 | 0 | 1 | 1 | 105 | 1 | 1 | 1 |
| 364227 | 105 | 0 | 0 | 0 | 3763454 | 1 | 1 | 0 | 105 | 0 | 0 | 0 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------
现在我展示了 3 个服务,因为它会变成一个巨大的水平滚动条,但是每个 user_id 最多可以有 10 个服务,这意味着一些用户可能有 4 个服务。
这就是我要查询的。
SELECT user_id, service FROM table
PIVOT (?) FOR order_id IN (0, 1, 2, 3 ,4 ,5 ,6, 7, 8, 9, 10))
我不知道如何继续前进。有什么帮助吗?提前致谢 :-)