WITH TIES语句

  我们有时需要返回特定数量的记录,而不管符合条件的行有多少。要返回排在前面的值,可以有两个选择:指定固定数量的行,或者指定总行数的百分比。例如以下查询将返回前10个价格最高的产品。

1 SELECT TOP 10 Name,ListPrice
2  FROM Production.Product
3 ORDER BY ListPrice DESC

  SQL Server不对这些数据做任何分析,甚至在截断列表时,也不会考虑这些值是不是已经排过序,上述查询将在返回第10行后截断结果,而不管后面还有多少条记录的ListPrice与第10行的ListPrice相同,如果想把与第10行相同价格的行也包含进来,可以使用一下查询:

1 SELECT TOP 10 WITH TIES Name,ListPrice
2 FROM Production.Product
3 ORDER BY ListPrice DESC

  上面的这条查询将会返回13行,原因在于第11、12、13行中的ListPrice值都与第10行相同。

  下面的查询是使用百分比来返回结果集:

1 SELECT TOP 10 PERCENT WITH TIES Name,ListPrice
2 FROM Production.Product
3 ORDER BY ListPrice DESC

 

posted @ 2010-11-21 23:15  宁静月光  Views(404)  Comments(0Edit  收藏  举报