Questions tagged «sql-order-by»

SQL中的ORDER BY子句指定SQL SELECT语句返回结果集,其中的行按一列或多列的值排序。

13
按SQL IN()子句中的值顺序排序
我想知道是否存在按IN()子句中的值顺序进行排序的方法(可能是一种更好的方法)。 问题是我有2个查询,一个查询获取所有ID,第二个查询获取所有信息。第一个创建我要第二个排序的ID的顺序。这些ID以正确的顺序放入IN()子句中。 所以它就像(极其简化): SELECT id FROM table1 WHERE ... ORDER BY display_order, name SELECT name, description, ... WHERE id IN ([id's from first]) 问题在于第二个查询不会以将ID放入IN()子句的顺序来返回结果。 我发现的一种解决方案是将所有ID放入具有自动递增字段的临时表中,然后将其加入第二个查询中。 有更好的选择吗? 注意:由于第一个查询是“由用户”运行的,第二个查询是在后台进程中运行的,因此无法使用子查询将2合并为1。 我正在使用MySQL,但我想让它指出其他数据库也有哪些选项可能会很有用。
154 mysql  sql  sql-order-by 

8
SQL select语句中“按1排序”的目的是什么?
我正在阅读一些工作中的旧代码,并注意到有多个带有order by 1子句的视图。这有什么作用? 例: Create view v_payment_summary AS SELECT A.PAYMENT_DATE, (SELECT SUM(paymentamount) FROM payment B WHERE PAYMENT_DATE = B.PAYMENT_DATE and SOME CONDITION) AS SUM_X, (SELECT SUM(paymentamount) FROM payment B WHERE PAYMENT_DATE = B.PAYMENT_DATE and SOME OTHER CONDITION) AS SUM_Y FROM payment A ORDER BY 1;
154 sql  sql-order-by 

6
C#列表。降序排列
我想收到一个按 'Product.Name' 降序排列的列表。 类似于下面的功能,该功能以相反的顺序对列表进行升序排序,这可能吗? var newList = list.OrderBy(x => x.Product.Name).ToList();
150 c#  list  sorting  sql-order-by 


11
SQL订单字符串作为数字
我将数字保存VARCHAR到MySQL数据库。INT由于某些其他情况,我无法制作它们。 排序时将它们当作字符而不是数字。 在数据库中我有 1 2 3 4 5 6 7 8 9 10... 在我的页面上,它显示如下排序列表: 1 10 2 3 4 5 6 7 8 9 如何使它按数字升序显示?

4
GROUP_CONCAT订购
我有一张桌子,像: +-----------+-------+------------+ | client_id | views | percentage | +-----------+-------+------------+ | 1 | 6 | 20 | | 1 | 4 | 55 | | 1 | 9 | 56 | | 1 | 2 | 67 | | 1 | 7 | 80 | | 1 | 5 | …

4
如何正确使用Oracle ORDER BY和ROWNUM?
我很难将存储过程从SQL Server转换为Oracle,以使我们的产品与其兼容。 我有一个查询,它根据时间戳返回一些表的最新记录: SQL Server: SELECT TOP 1 * FROM RACEWAY_INPUT_LABO ORDER BY t_stamp DESC =>那将返回我最近的记录 但是甲骨文: SELECT * FROM raceway_input_labo WHERE rownum <= 1 ORDER BY t_stamp DESC =>那将返回我最旧的记录(可能取决于索引),而不管ORDER BY语句如何! 我以这种方式封装了Oracle查询以符合我的要求: SELECT * FROM (SELECT * FROM raceway_input_labo ORDER BY t_stamp DESC) WHERE rownum <= 1 而且有效。但这对我来说听起来像是一个骇人听闻的骇客,尤其是当我在涉及的表中有很多记录的时候。 实现此目标的最佳方法是什么?

3
如何首先返回具有特定值的行?
我希望我的查询返回表的行,其中列首先包含特定值,然后返回其余按字母顺序排列的行。 如果我有一个表格,例如以下示例: - Table: Users - id - name - city - 1 George Seattle - 2 Sam Miami - 3 John New York - 4 Amy New York - 5 Eric Chicago - 6 Nick New York 并使用该表,我想对查询返回包含纽约的行,然后返回按城市字母顺序排列的其余行。仅使用一个查询就能做到吗?
124 sql  sql-order-by 

10
在mysql中使用union和order by子句
我想在MySQL查询中通过Union使用order。我正在根据基于距离的表格从不同的标准中获取不同类型的记录,这些表格基于在我的网站上进行搜索的距离。第一个选择查询返回与精确位置搜索有关的数据。第二个选择查询返回与距搜索位置5公里以内的距离有关的数据。第三个选择查询返回与距搜索位置5-15公里之内的距离有关的数据。 然后,即时消息使用union合并所有结果,并在带有分页的页面上显示。在适当的标题下,例如“精确搜索结果”,“ 5公里内的结果”等 现在我想基于id或add_date对结果进行排序。但是,当我在查询末尾添加order by子句时(query1联合查询2联合查询3由add_date排序)。它对所有结果进行排序。但是我想要的是应该在每个标题下进行排序。
123 mysql  sql  sql-order-by  union 

12
如何在同一个SELECT语句中使用DISTINCT和ORDER BY?
执行以下语句后: SELECT Category FROM MonitoringJob ORDER BY CreationDate DESC 我从数据库中获取以下值: test3 test3 bildung test4 test3 test2 test1 但我想删除重复项,如下所示: bildung test4 test3 test2 test1 我尝试使用DISTINCT,但是在一个语句中它不适用于ORDER BY。请帮忙。 重要: 我尝试过: SELECT DISTINCT Category FROM MonitoringJob ORDER BY CreationDate DESC 它不起作用。 通过CreationDate进行排序非常重要。

5
用Doctrine按多列排序
我需要按两列排序数据(当行的第1列具有不同的值时,按此排序;否则按第2列进行排序) 我正在使用QueryBuilder创建查询。 如果我orderBy第二次调用该方法,它将替换以前指定的任何顺序。 我可以将两列作为第一个参数传递: ->orderBy('r.firstColumn, r.secondColumn', 'DESC'); 但是我不能为第二个参数传递两个排序方向,因此当我执行此查询时,第一列按升序排序,第二列按降序排序。我想对它们两个都使用降序。 有没有办法做到这一点QueryBuilder?我需要使用DQL吗?

6
MySQL-IN()中的ORDER BY值
我希望按照在IN()函数中输入的顺序对以下查询中返回的项目进行排序。 输入: SELECT id, name FROM mytable WHERE name IN ('B', 'A', 'D', 'E', 'C'); 输出: | id | name | ^--------^---------^ | 5 | B | | 6 | B | | 1 | D | | 15 | E | | 17 | E | | 9 | …

7
C#Sort和OrderBy比较
我可以使用Sort或OrderBy对列表进行排序。哪一个更快?两者都在使用相同的算法吗? List<Person> persons = new List<Person>(); persons.Add(new Person("P005", "Janson")); persons.Add(new Person("P002", "Aravind")); persons.Add(new Person("P007", "Kazhal")); 1。 persons.Sort((p1,p2)=>string.Compare(p1.Name,p2.Name,true)); 2。 var query = persons.OrderBy(n => n.Name, new NameComparer()); class NameComparer : IComparer<string> { public int Compare(string x,string y) { return string.Compare(x, y, true); } }

6
MySQL的“分组依据”和“排序依据”
我希望能够从电子邮件表中选择一堆行并将其按发件人分组。我的查询如下所示: SELECT `timestamp`, `fromEmail`, `subject` FROM `incomingEmails` GROUP BY LOWER(`fromEmail`) ORDER BY `timestamp` DESC 该查询几乎可以按我需要的方式工作-它选择按电子邮件分组的记录。问题在于主题和时间戳与特定电子邮件地址的最新记录不符。 例如,它可能返回: fromEmail: john@example.com, subject: hello fromEmail: mark@example.com, subject: welcome 当数据库中的记录是: fromEmail: john@example.com, subject: hello fromEmail: john@example.com, subject: programming question fromEmail: mark@example.com, subject: welcome 如果“编程问题”主题是最新的,则如何在对电子邮件进行分组时让MySQL选择该记录?

3
MySQL查询顺序由多个项目
可以按多行订购吗? 我希望我的用户按last_activity进行排序,但同时,我希望带有图片的用户出现在没有图片的用户之前 像这样: SELECT some_cols FROM `prefix_users` WHERE (some conditions) ORDER BY last_activity, pic_set DESC;

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.