我已经弄乱了数据库记录,以至于我想纠正。我在提出查询时遇到问题。
基本上,这就是我的数据的样子:
---------------
| Id | Value |
---------------
| 1 | John |
| 2 | John |
| 3 | Nick |
| 4 | Nick |
| 5 | Tom |
| 7 | Tom |
---------------
我需要输出为
-------------------------------
| Value | Id1 | Id2 |
-------------------------------
| John | 1 | 2 |
| Nick | 3 | 4 |
| Tom | 5 | 7 |
-------------------------------
我可以寻求帮助吗?
答案 0 :(得分:2)
如果要查看两个值,它可能很简单
Select value
,id1 = min(ID)
,id2 = max(ID)
From YourTable
Group By value
编辑-如果观察到两个以上
Select *
From (
Select ID
,Value
,RN = row_number() over (partition by value order by id)
From YourTable
) src
Pivot ( max(ID) for RN in ([1],[2],[3],[4]) ) pvt