Select top 5 title,Digg from Table where Delect=False order by Digg Desc其中字段Digg为数字类型,非主键。有重复。问题:如果查询top 5 ,前5个里面的Digg没有重复的话,正常显示,如果top 5 里面有重复的话,会把所有都显示出来,怎么解决这个问题?谢谢
WITH TIES指定从基本结果集中返回附加的行,这些行包含与出现在 TOP n (PERCENT) 行最后的 ORDER BY 列中的值相同的值。如果指定了 ORDER BY 子句,则只能指定 TOP ...WITH TIES。 Select top 5 with ties title,Digg from Table where Delect=False order by Digg Desc
SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。按照您说的,提示出错
select * from Table where (Digg in Select distinct top 5 Digg ,min(title) from Table where Delect=False order by Digg Desc) MSSQL调试通过 结果是: 查找所有的数据在table ,条件是 Digg 是最大的5 个 比如:title digg 1 45 2 45 3 45 4 73 5 45 6 44 7 43 8 41 9 42 10 2 11 15 12 23 结果:1 45 2 45 3 45 4 73 5 45 6 44 7 43 9 42 不知道是否合符你的要求
where 这个条件或许需要改动!我没有这个字段,所以就没有测试! 改进: select * from Table where (Digg in Select distinct top 5 Digg from Table order by Digg Desc) where Delect=False
Select top 5 with ties title,Digg from Table where Delect=False order by Digg Desc
MSSQL调试通过
结果是:
查找所有的数据在table ,条件是 Digg 是最大的5 个 比如:title digg
1 45
2 45
3 45
4 73
5 45
6 44
7 43
8 41
9 42
10 2
11 15
12 23
结果:1 45
2 45
3 45
4 73
5 45
6 44
7 43
9 42
不知道是否合符你的要求
改进:
select * from Table where (Digg in Select distinct top 5 Digg from Table order by Digg Desc) where Delect=False