IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T CREATE TABLE #T (A VARCHAR(100) ,B VARCHAR(100)) INSERT INTO #T SELECT Content ,Title FROM News WHERE NewsId > 47 DECLARE @i INT ,@max INT ,@sql VARCHAR(MAX) SELECT TOP 1 @i = 1 ,@max = COUNT(*) FROM #T GROUP BY A ORDER BY 2 DESC --PRINT @max WHILE @i <= @max BEGIN SET @sql = ISNULL(@sql + '+max(case i when ' + LTRIM(@i) + ' then '',''+', 'max(case i when ' + LTRIM(@i) + ' then ') + 'B else '''' end)' SET @i = @i + 1 END --PRINT @sql EXEC ('select A, B='+@sql+' from (select *,i=(select count(1) from #T where A=a.A and B<=a.B) from #T a) t group by A')
结果:
上一篇::亲,已经是第一篇了!
下一篇::SQL语句中case when的日常用法