34,591
社区成员
发帖
与我相关
我的任务
分享
--> liangCK小梁 于2008-11-04
--> 生成测试数据: @T
DECLARE @T TABLE (id INT,Color VARCHAR(5))
INSERT INTO @T
SELECT 1,'red' UNION ALL
SELECT 2,'red' UNION ALL
SELECT 3,'red' UNION ALL
SELECT 4,'blue' UNION ALL
SELECT 5,'blue' UNION ALL
SELECT 6,'blue' UNION ALL
SELECT 7,'green' UNION ALL
SELECT 8,'green' UNION ALL
SELECT 9,'green'
--SQL查询如下:
SELECT *
FROM @T AS t
ORDER BY (SELECT COUNT(*)
FROM @T
WHERE Color=t.Color
AND id<=t.id),id
/*
id Color
----------- -----
1 red
4 blue
7 green
2 red
5 blue
8 green
3 red
6 blue
9 green
(9 行受影响)
*/
--> liangCK小梁 于2008-11-04
--> 生成测试数据: @T
DECLARE @T TABLE (id INT,Color VARCHAR(5))
INSERT INTO @T
SELECT 1,'red' UNION ALL
SELECT 2,'red' UNION ALL
SELECT 3,'red' UNION ALL
SELECT 4,'blue' UNION ALL
SELECT 5,'blue' UNION ALL
SELECT 6,'blue' UNION ALL
SELECT 7,'green' UNION ALL
SELECT 8,'green' UNION ALL
SELECT 9,'green'
--SQL查询如下:
SELECT *
FROM @T
ORDER BY ROW_NUMBER() OVER(PARTITION BY Color ORDER BY id),id
/*
id Color
----------- -----
1 red
4 blue
7 green
2 red
5 blue
8 green
3 red
6 blue
9 green
*/