问题标签 [sql-order-by]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4391 浏览

sql-server-2005 - SQL order by 和 left outer join 没有正确的顺序

我有一个视图,它连接两个表并按第一个表排序。除了顺序不正确。它错过了一个偶然的记录,然后在最后,大多数记录按顺序存在,然后在最后,其余记录按顺序存在。所以它有记录,如

我的看法如下。在我加入之前我需要做订单吗?我究竟做错了什么?(我已经获得了这个视图,并且另一个数据库实例中完全相同的视图可以正常工作。)

(编辑)排序字段的类型是 [ID] [int] NOT NULL IDENTITY(1, 1),

0 投票
9 回答
1960 浏览

mysql - 我有哪些选择可以让我的 ORDER BY 更快?

我有以下查询:

如果我删除订单,查询需要 0.005 秒。使用 order by,查询需要 1.8-1.9 秒。我有一个索引client_name

还有什么可以提高速度的?

编辑: c.id 是主键,但在 client_project 中可能有多个记录,因此每个 id 可能会导致多个记录。此外,删除 distinct 会在查询中产生 0.1 秒的差异。

补充:这是我的客户表:

使用 MySQL 5.0

0 投票
5 回答
89898 浏览

sql - SQL ORDER 字符数

我有一列数字存储为字符。当我为此列执行 ORDER BY 时,我得到以下信息:

100
131
200
21
30
31000

如何以数字方式订购这些字符?我需要转换一些东西还是已经有一个 SQL 命令或函数?

谢谢你。

0 投票
5 回答
395684 浏览

mysql - 按两列对 MySQL 表排序

如何按两列对 MySQL 表进行排序?

我想要的是首先按最高评分排序的文章,然后是最近的日期。例如,这将是一个示例输出(左 # 是评分,然后是文章标题,然后是文章日期)

我正在使用的相关 SQL 是:

我可以按其中一个排序,但不能同时排序。

0 投票
2 回答
972 浏览

sql - MSSQL Paging 在不应该时返回随机行

我正在尝试在 MSSQL 中进行一些基本的分页。我遇到的问题是我在(可能)具有相似值的行上对分页进行排序,并且 ORDER BY 子句返回“随机”结果,这不能很好地工作。

举个例子。

如果我有三行,并且我按“评级”对它们进行排序,并且所有评级都是 = '5' - 这些行似乎会“随机”排列自己。如何使行每次都以相同的顺序显示?

我尝试按字段上次编辑的日期时间对其进行排序,但是“评级”是反向排序的,并且再次无法按我期望的方式工作。

这是我目前使用的 SQL。我知道没有数据会让人感到困惑,所以..任何帮助都会非常有用。

0 投票
2 回答
650 浏览

asp.net - ASP.NET 中的 SQL - 按错误排序仅一种类型排序

我正在开发一个 ASP.NET 应用程序,该应用程序应该输出所选州际公路的检测器数据,按英里标记排序。我们确定最好的方法是按照经度(西和东)或纬度(北和南)对其进行排序,具体取决于它的方向。这是填充它的查询。

WebName 视图具有不同的列表,例如“I-64 WB at MP 3.1”。他们有权访问的 ListItems 被列为“I-64”。

有 4 条不同的州际公路,除了一个 I-55/70 外,它对所有地方都适用。选择该选项后,列表不会按纬度或经度排序,而是仅按它们在表中的顺序排序。I-55/70 是唯一一个带有 / 的。这会影响事情吗?

先感谢您。

编辑:这些在列表项中列为“I-55/70 WB”,依此类推,样式与上例相同。很抱歉造成混乱。

Edit2:这成功了。谢谢!

0 投票
7 回答
2398 浏览

sql - SQL 查询的特殊排序

我需要显示按某个数字列排序的数据库表中的记录列表。该表如下所示:

现在,列表的顺序应该根据用户提供的参数而改变。此参数指定首先出现的记录,如下所示:

换句话说,最后一条记录成为第一条,依此类推。你能想出一种在 SQL 中做到这一点的方法吗?

我正在使用 MySQL,但任何 SQL 数据库中的示例都可以。

谢谢

0 投票
9 回答
37752 浏览

mysql - MySQL - 控制组返回哪一行

我有一个这样的数据库表:

如果你没有解决它,它包含一行的多个版本,然后是一些文本数据。

我想查询它并返回每个 id 编号最大的版本。(因此仅在上面的第二行和最后一行)。

我在按 version_id DESC 排序时尝试使用 group by - 但它似乎在分组后排序,所以这不起作用。

有人有什么想法吗?我就不信做不到!

更新:

想出这个,它有效,但使用子查询:

0 投票
4 回答
2177 浏览

sql - 当结果集非常大且无法按索引排序时优化“ORDER BY”

当我不能使用索引来满足行的排序时,如何使具有小 LIMIT(即一次 20 行)的 ORDER BY 子句快速返回?

假设我想从表“节点”(下面简化)中检索一定数量的标题。顺便说一句,我正在使用 MySQL。

但我需要将返回的行限制为仅特定用户有权访问的行。许多用户可以访问大量节点。我在一个大查找表中预先计算了这些信息(试图让事情变得更容易),其中主键涵盖两列,并且行的存在意味着用户组可以访问该节点:

因此,我的查询包含类似

...而且我还使用 GROUP BY 或 DISTINCT 以便即使两个用户的“用户组”都可以访问该节点,一个节点也只会返回一次。

我的问题是,对于按创建或上次更新日期对结果进行排序的 ORDER BY 子句似乎无法使用索引,因为返回的行取决于另一个 viewpermission 表中的值。

因此 MySQL 需要找到所有符合条件的行,然后自己对它们进行排序。如果特定用户有一百万行,并且我们想查看最新的 100 行或按上次更新排序时的 100-200 行,则数据库需要确定用户可以看到哪些一百万行,排序这整个结果集本身,在它可以返回那 100 行之前,对吧?

有没有什么创造性的方法来解决这个问题?我一直在思考:

  • 以某种方式将日期添加到查看权限查找表中,以便我可以建立一个包含日期和权限的索引。我猜这是一种可能。

编辑:简化问题

也许我可以通过这样重写来简化问题:

有什么方法可以重写此查询或为以下内容创建索引,以便可以使用索引进行排序(不仅仅是选择行)?

(usergroup) 上的索引允许索引满足 WHERE 部分,但 GROUP BY 强制对这些行使用临时表和文件排序。(nodeid) 上的索引对我没有任何作用,因为 WHERE 子句需要一个以用户组作为第一列的索引。(usergroup, nodeid) 上的索引强制使用临时表和文件排序,因为 GROUP BY 不是可以变化的索引的第一列。

有什么解决办法吗?

0 投票
4 回答
2642 浏览

c# - 将 [0] 或 First() 与 LINQ OrderBy 一起使用

如果我有这样的结构

 专辑
    - 专辑
        - 光盘
            - 曲目

我想按第一张光盘上第一首曲目的标题订购专辑集合。

有没有类似于以下我可以做的事情(请记住,我需要使用接受字符串的 OrderBy 扩展方法)?

我需要能够使用字符串表达式进行排序,因此需要使用 OrderBy 方法,即专辑.OrderBy("Track[0].Title")。原因是我们的自定义框架使用从 GridView 传回的排序表达式(例如“Title”),该表达式在字典中查找(例如“Track[0].Title”)以获取正确的 order by 子句。也就是说,排序的字段和方向是在运行时动态确定的。

或者