给定一张表Sno Sname Ssex Sage Sdept
0811101 李勇 男 21 计算机系
0811102 刘晨 男 20 计算机系
0811103 王敏 女 20 计算机系
0811104 张小红 女 19 计算机系
0821101 张立 男 20 信息管理系
0821102 吴宾 女 19 信息管理系
0821103 张海 男 20 信息管理系
0831101 钱小平 女 21 通信工程系
0831102 王大力 男 20 通信工程系
0831103 张姗姗 女 19 通信工程系
做了两个查询
1.SELECT TOP 3 WITH TIES Sname, Sage, Sdept
FROM Student
ORDER BY Sage DESC
结果为
Sname Sage Sdept
李勇 21 计算机系
钱小平 21 通信工程系
王大力 20 通信工程系
张立 20 信息管理系
刘晨 20 计算机系
王敏 20 计算机系
张海 20 信息管理系
2.SELECT TOP 3 Sname, Sage, Sdept
FROM Student
ORDER BY Sage DESC
结果为:
Sname Sage Sdept
李勇 21 计算机系
钱小平 21 通信工程系
王敏 20 计算机系
不知道系统是怎么排序的。两次排序的第三个元祖不相同,而且年龄相同的顺序和源表的顺序不一样。
0811101 李勇 男 21 计算机系
0811102 刘晨 男 20 计算机系
0811103 王敏 女 20 计算机系
0811104 张小红 女 19 计算机系
0821101 张立 男 20 信息管理系
0821102 吴宾 女 19 信息管理系
0821103 张海 男 20 信息管理系
0831101 钱小平 女 21 通信工程系
0831102 王大力 男 20 通信工程系
0831103 张姗姗 女 19 通信工程系
做了两个查询
1.SELECT TOP 3 WITH TIES Sname, Sage, Sdept
FROM Student
ORDER BY Sage DESC
结果为
Sname Sage Sdept
李勇 21 计算机系
钱小平 21 通信工程系
王大力 20 通信工程系
张立 20 信息管理系
刘晨 20 计算机系
王敏 20 计算机系
张海 20 信息管理系
2.SELECT TOP 3 Sname, Sage, Sdept
FROM Student
ORDER BY Sage DESC
结果为:
Sname Sage Sdept
李勇 21 计算机系
钱小平 21 通信工程系
王敏 20 计算机系
不知道系统是怎么排序的。两次排序的第三个元祖不相同,而且年龄相同的顺序和源表的顺序不一样。
FROM Student
ORDER BY Sage DESC2.SELECT TOP 3 Sname, Sage, Sdept
FROM Student
ORDER BY Sage DESC楼主要清楚 with ties 的用法!重复的都会显示!
--a表示开始数字,b表示结束数字,如第一条记录表示从0到33的数字
insert into @Temp (a,b) values (0,33)
insert into @Temp (a,b) values (16,46)
insert into @Temp (a,b) values (0,17)
insert into @Temp (a,b) values (0,21)
insert into @Temp (a,b) values (0,30)
insert into @Temp (a,b) values (30,67)
insert into @Temp (a,b) values (29,89)
insert into @Temp (a,b) values (63,89)
--如上数据,现在我要得到里面数字重叠的最大值,比如上面测试的数据这种情况,最大值会出现在30这个值上,第1,2,5,6,7条记录都包含了30,最大值是5 select top 1 with ties b.number,cnt=count(1)
from @Temp a
join master..spt_values b
on b.type='p' and b.number between a.a and a.b
group by b.number
order by cnt desc/*
number cnt
----------- -----------
30 5
16 5
17 5(3 行受影响)
*/本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2009/04/23/4105178.aspx
FROM Student
ORDER BY Sage DESC
结果顺序和第一个查询都不一样;
Sname Sage Sdept
李勇 21 计算机系
钱小平 21 通信工程系
王敏 20 计算机系
刘晨 20 计算机系
张立 20 信息管理系
张海 20 信息管理系
王大力 20 通信工程系
张立 20 信息管理系
张海 20 信息管理系
第一个查询结果是:
Sname Sage Sdept
李勇 21 计算机系
钱小平 21 通信工程系
王大力 20 通信工程系
张立 20 信息管理系
刘晨 20 计算机系
王敏 20 计算机系
张海 20 信息管理系
难道两次是使用了不同的排序方法?