我有一个具有重复ID的表,但第二列中有其他值。我不需要使用DISTINCT删除所有重复项,而是需要一行ID和几列第二列中的值。
这就是我的意思:(必须成为结果)


发布于 2016-10-11 17:54:06
好的,我已经设法解决了这个问题:
WITH cte AS (SELECT top 1000 *, ROW_NUMBER()OVER(PARTITION BY
id ORDER BY id) as RN FROM dbo.books) SELECT top
1000 a.id, a.category
, b.category as category2
, c.category as category3
, d.category as category4
from cte a
LEFT join cte b
on a.id = b.id
and a.RN = b.RN -1
LEFT JOIN cte c
ON a.id = c.id
AND a.RN = c.RN -2
LEFT JOIN cte d
ON a.id = d.id
AND a.RN = d.RN -3
WHERE a.RN = 1https://stackoverflow.com/questions/39960410
复制相似问题