表:yatiku_group_ChatPersionNumber
表中数据:

我要以下数据结构
我想查询出结果
RoomGroupid uid1, uid2
4 9 12
哪个大大可以帮忙!
------解决思路----------------------
DECLARE @SQL VARCHAR(MAX)你参考下
SET @SQL='SELECT RoomGroupid'
DECLARE @MAXCOUNT INT
SELECT @MAXCOUNT=MAX(C)
FROM(
SELECT COUNT(1)C
FROM yatiku_group_ChatPersionNumber
GROUP BY RoomGroupid
)T
SELECT @SQL=@SQL+',MAX(CASE WHEN RN='+CAST(number AS VARCHAR(10))+' THEN uid END)[uid'+CAST(number AS VARCHAR(10))+']'
FROM master..spt_values
WHERE type='P'AND number>0 AND number<=@MAXCOUNT
SET @SQL=@SQL+'FROM(SELECT ROW_NUMBER()OVER(PARTITION BY RoomGroupid ORDER BY id)RN,*
FROM yatiku_group_ChatPersionNumber)T
GROUP BY RoomGroupid'
EXEC(@SQL)
------解决思路----------------------
DECLARE @Sql NVARCHAR(max),@ColRows VARCHAR(2)
SELECT TOP 1 @ColRows=COUNT(*) FROM yatiku_group_ChatPersionNumber GROUP BY RoomGroupid ORDER BY COUNT(*) DESC
SET @Sql=''
WHILE @ColRows>0
SELECT @Sql=',[uid'+@ColRows+']=max(case when RN='+@ColRows+' then [uid] end)'+@Sql,@ColRows=@ColRows-1
EXEC('select RoomGroupid'+@Sql+' from (select RoomGroupid,uid,RN=row_number()over(partition by uid order by id) from yatiku_group_ChatPersionNumber) as T'+' group by RoomGroupid')