sql 中 with ties 干嘛用的

sql 中 with ties 干嘛用的,第1张

 我们有时需要返回特定数量的记录,而不管符合条件的行有多少。要返回排在前面的值,可以有两个选择:指定固定数量的行,或者指定总行数的百分比。例如以下查询将返回前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

应该是WITH TIES吧?

WITH TIES指定从基本结果集中返回额外的行,对于 ORDER BY 列中指定的排序方式参数,这些额外的返回行的该参数值与 TOP n (PERCENT) 行中的最后一行的该参数值相同。只能在 SELECT 语句中且只有在指定了 ORDER BY 子句之后,才能指定 TOP...WITH TIES。

注意:返回的记录关联顺序是任意的。ORDER BY 不影响此规则。

例如:

“从100万条记录中的得到成绩最高的记录”。通常用:

select top 1 * from student order by score desc

但是如果有几个人分数并列第一,这样就只能取到一个记录。用下面的代码的话,就可以正确地取出分数第一的所有记录:

select top 1 with ties * from student order by score desc


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10075772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存