SQL WITH TIES语句

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

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

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

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

 

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

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

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

  

posted @ 2012-09-20 09:42  沙耶  阅读(2878)  评论(0编辑  收藏  举报