问题标签 [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 投票
3 回答
2123 浏览

sql - 与 SQL 排序依据和空值的数据库一致性

我的数据库中有一个列(一个标志),类型为 varchar(1),填充为 Y 或 NULL(这是它的样子,不在我的控制范围内)。

在 SQL Server 中,按查询升序排列,NULL 排在最前面。对于 Oracle 和 DB2,这种行为是否应该保持一致?

相反,如果我在列上有一个 COALESCE 以确保它在查询中不为空,我是否可能会遇到任何性能问题(由于表扫描等)?

编辑

查询需要在所有 3 个数据库上保持一致,否则我将不得不在代码中处理它,因此我考虑使用 COALESCE 函数

编辑

我选择 Pax 作为答案,因为它处理了问题的两个部分并提供了有用的解决方法,但是,感谢 me.yahoo.com/a/P4tXrx 提供指向此处的链接

0 投票
4 回答
4643 浏览

c# - Linq to SQL:如何按复合对象排序?

我有以下 Linq to SQL 查询,其中我正在尝试执行多列 GROUP BY:

这将引发 InvalidOperationException(“无法按类型“任务”排序。”)。

是否有 Task 必须实现的接口(它已经实现了 IComparable、IComparable<ITask>)?Task 是否需要是 Linq to SQL 实体(目前不需要,因为没有对应的表)。或者这只是 Linq to SQL 不支持的东西?

请注意,我已经为分组尝试了匿名类型,但失败并出现类似的 InvalidOperationException:

值得一提的是,Task 对象是 2 个字段的组合;一个是单个字符(通常是“S”或“B”),另一个是 int(如果您愿意,实际上是跨数据库的“外键”)。Tasks 的排序行为只是比较它们的字符串表示;EG 任务“B101”< 任务“S999”

0 投票
10 回答
38461 浏览

grails - 如何在 Grails 中按多个字段排序?

有没有办法获得按两个字段排序的列表,比如姓氏和名字?

我知道.listOrderByLastAndFirst并且.list(sort:'last, first')不会工作。

0 投票
12 回答
28166 浏览

c# - 在保持排序的同时将有序列表保存到数据库的最佳方法

我想知道是否有人对我在过去几年中多次遇到的问题有很好的解决方案。

我有一个购物车,我的客户明确要求它的订单很重要。所以我需要将订单保存到数据库。

显而易见的方法是简单地插入一些 OrderField,我将在其中将数字 0 分配给 N 并以这种方式对其进行排序。

但是这样做会使重新排序变得更加困难,而且我不知何故觉得这个解决方案有点脆弱,总有一天会回来找我。

(我将 C# 3,5 与 NHibernate 和 SQL Server 2005 一起使用)

谢谢

0 投票
5 回答
1384 浏览

sql - 如何使用分组行对 SQL 查询进行排序

我在 MS Access 中有表(Product_Id,类别优先级,atribute1,atribute2 ...),我正在尝试进行查询,对按类别分组的数据进行排序,并按最高优先级排序。优先级可以为 Null,所以应该放在最后。示例:表格

查询中的预期结果:

0 投票
13 回答
141600 浏览

mysql - 按 SQL IN() 子句中的值顺序排序

我想知道是否有可能(可能是更好的方法)按 IN() 子句中的值顺序进行排序。

问题是我有 2 个查询,一个获取所有 ID,第二个获取所有信息。第一个创建我希望第二个排序的 ID 的顺序。ID 以正确的顺序放在 IN() 子句中。

所以它会是这样的(非常简化):

问题是第二个查询返回的结果与将 ID 放入 IN() 子句的顺序不同。

我发现的一种解决方案是将所有 ID 放入带有自动递增字段的临时表中,然后将其加入到第二个查询中。

有更好的选择吗?

注意:由于第一个查询是“由用户”运行的,而第二个查询是在后台进程中运行的,因此无法使用子查询将 2 合为 1 查询。

我正在使用 MySQL,但我认为让它注意其他数据库的选项可能会很有用。

0 投票
6 回答
27615 浏览

sql - SQL Server UNION - 默认的 ORDER BY 行为是什么

如果我有几个 UNION 语句作为人为的例子:

默认order by行为是什么?

我看到的测试数据基本上不会按照上面指定的顺序返回数据。即数据是有序的,但我想知道这方面的优先规则是什么。

另一件事是,在这种情况下,xxx 是一个视图。该视图将 3 个不同的表连接在一起以返回我想要的结果。

0 投票
1 回答
132 浏览

list - 来自 SQL 调用的列表排序

我有一个从daoTemplate.query()通话中返回的列表,使用rowMapper.

SQL对列进行排序,恰好是日期列,当我使用列表时按asc排序,我总是保证列表将按照sql规定的顺序排列。我可以依赖第一个元素(theList.get(0)),总是最早的日期(在这种情况下)?

0 投票
6 回答
2232 浏览

mysql - 将 ORDER BY 子句添加到 MySQL 查询使其在 ~30 秒内返回,从 ~0.5

所以我有这个查询在 ~0.5 秒时相对较快,但是当我添加 ORDER BY 子句时,它会跳到近 30 秒。

原始查询:(在 ~0.5 秒内返回)

使用 ORDER BY 查询:(大约 30 秒后返回)

请注意,我向 ORDER BY 正在使用的列添加了一个索引,它没有改变任何内容。

关于什么会导致这种情况的任何想法?

0 投票
3 回答
1024 浏览

sql - 以相同的顺序获取记录而不使用 ORDER BY 子句

我是 T-SQL 的新手。有人可以告诉我如何在不使用 order by 子句的情况下以相同的顺序从 sql 表中获取记录吗?