首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL中的ORDER和TOP语句在列出记录时的工作原理不同,为什么?

SQL中的ORDER和TOP语句在列出记录时的工作原理不同,为什么?
EN

Stack Overflow用户
提问于 2019-07-04 07:57:18
回答 2查看 50关注 0票数 0

我使用的是数据库中的一个名为CITY的表,下面是城市名称。城市名称:德里、孟买、帕特纳、维贾亚瓦达、帕纳吉、提鲁凡南塔普兰、钦奈和加尔各答。

订单:

代码语言:javascript
复制
Select NAME from CITY ORDER BY LEN(NAME)

产出:德里、帕特纳、帕纳吉、孟买、加尔各答、钦奈、维贾亚瓦达、Tiruvananthapuram

排名前3位,订购

代码语言:javascript
复制
Select TOP 3 NAME from CITY ORDER BY LEN(NAME)

产出:德里、帕特纳、孟买

我的问题是,为什么不德里,帕特纳和帕纳吉。为什么前三名选择的是第四项而不是第三项?

EN

回答 2

Stack Overflow用户

发布于 2019-07-04 07:59:36

这是因为PanajiMumbai都有6个字符长,它们都符合TOP 3子句中第三个位置的条件。SQL Server可以自由返回Panaji或孟买,而不违反标准,而且绝对不能保证它在任何特定时间返回哪个城市。

要处理领带,您可以按子句的顺序明确指定附加标准,例如:

代码语言:javascript
复制
ORDER BY LEN(name), name -- order by length
                         -- if there is a tie then by name
票数 3
EN

Stack Overflow用户

发布于 2019-07-04 08:05:01

这是一个原因之一,与领带关键字被引入与顶部子句。

在不使用关键字的情况下,您将获得与之匹配的结果的随机结果。就像你在这里看到的,孟买和帕纳吉的长度是一样的,所以他们中的任何一个都有可能被归还。使用关键字时,您将看到4个结果返回(这两个结果都包括在内)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56883218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档