标签: sql-order-by

来自另一个表的列的SQL顺序

我有3个表:人员,团体和会员.成员资格是人和组之间的连接表,有3列:personId,groupId和description(text).

我想根据groupId从成员资格表中选择条目,但是根据与找到的成员资格相关联的人员的姓名对结果进行排序(名称是人员表的列)

SELECT * FROM "memberships" WHERE ("memberships".groupId = 32) ORDER BY (?????)
Run Code Online (Sandbox Code Playgroud)

是否可以在一个查询中实现此目的?

sql sql-order-by

18
推荐指数
1
解决办法
3万
查看次数

在VB.NET的LINQ中ORDERBY的语法是什么?

我是Linq的新手,VB中orderby的语法是什么?

Dim cxt As New datContext
Dim qry = (From lst In cxt.zipcodes _
              Select lst.state).Distinct

    qry = qry.OrderBy()
Run Code Online (Sandbox Code Playgroud)

我的简单sql语句将是这样的:

Select distinct state from zipcodes
order by State
Run Code Online (Sandbox Code Playgroud)

vb.net distinct sql-order-by

17
推荐指数
2
解决办法
3万
查看次数

什么是"SELECT*FROM table_name;"的MySQL行顺序?

假设向MySQL数据库发出以下查询:

SELECT * FROM table_name;
Run Code Online (Sandbox Code Playgroud)

请注意,没有 ORDER BY给出任何条款.

我的问题是:

MySQL是否给出了结果集行的顺序保证?

更具体地说,我可以假设行将按插入顺序返回吗?这与行插入表中的顺序相同.

mysql select sql-order-by

17
推荐指数
3
解决办法
9961
查看次数

明确指定mysql查询的排序顺序?

如果我有:

ID | Title
1  | Shirt
2  | CD
3  | Cap
4  | Mp3
5  | Badge
Run Code Online (Sandbox Code Playgroud)

如果我想按此顺序排序:4,2,5,3,1.有没有办法在您明确指定的情况下进行SQL查询?就像是:

select * from TABLE order by ID(4,2,5,3,1) ??
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-order-by

17
推荐指数
2
解决办法
7143
查看次数

实体框架包括OrderBy随机生成重复数据

当我从包含一些孩子的数据库中检索项目列表(通过.Include),并随机排序时,EF给我一个意想不到的结果..我创建/克隆添加项目..

为了更好地解释自己,我创建了一个小而简单的EF CodeFirst项目来重现问题.首先,我将为您提供此项目的代码.

该项目

创建一个基本的MVC3项目,并通过Nuget添加EntityFramework.SqlServerCompact包.
这会添加以下软件包的最新版本:

  • EntityFramework v4.3.0
  • SqlServerCompact v4.0.8482.1
  • EntityFramework.SqlServerCompact v4.1.8482.2
  • WebActivator v1.5

模型和DbContext

using System.Collections.Generic;
using System.Data.Entity;

namespace RandomWithInclude.Models
{
    public class PeopleContext : DbContext
    {
        public DbSet<Person> Persons { get; set; }
        public DbSet<Address> Addresses { get; set; }
    }

    public class Person
    {
        public int ID { get; set; }
        public string Name { get; set; }

        public virtual ICollection<Address> Addresses { get; set; }
    }

    public class Address
    {
        public int ID { get; set; …
Run Code Online (Sandbox Code Playgroud)

linq random asp.net-mvc entity-framework sql-order-by

17
推荐指数
4
解决办法
6460
查看次数

SQL显示GROUP BY中的最新记录?

我有一个看起来像这样的表:

id    |    SubjectCode    |    Grade    |    DateApproved    |    StudentId

1            SUB123            1.25            1/4/2012            2012-12345

2            SUB123            2.00            1/5/2012            2012-12345

3            SUB123            3.00            1/5/2012            2012-98765   
Run Code Online (Sandbox Code Playgroud)

我正在尝试GROUP BY SubjectCode,但我希望它显示最近的DateApproved,所以它看起来像:

  id    |    SubjectCode    |    Grade    |    DateApproved    |    StudentId

2            SUB123            2.00            1/5/2012            2012-12345

3            SUB123            3.00            1/5/2012            2012-98765  
Run Code Online (Sandbox Code Playgroud)

我有点迷失在怎么办?

编辑:

好的家伙现在我在我的真实PC上,抱歉这个构造不好的问题.

这就是我实际上要做的事情:

SELECT GD.GradebookDetailId, G.SubjectCode, G.Description, G.UnitsAcademic, G.UnitsNonAcademic, 
GD.Grade, GD.Remarks, G.FacultyName, STR_TO_DATE(G.DateApproved, '%m/%d/%Y %h:%i:%s') AS 'DateAproved'
FROM gradebookdetail GD INNER JOIN gradebook G ON GD.GradebookId=G.GradebookId 
WHERE G.DateApproved IS NOT NULL AND …
Run Code Online (Sandbox Code Playgroud)

mysql sql group-by sql-order-by

17
推荐指数
3
解决办法
2万
查看次数

如何在订购后获得结果集中的第一行?

这给了我一行(第一行):

SELECT BLA
FROM BLA
WHERE BLA
AND ROWNUM < 2
Run Code Online (Sandbox Code Playgroud)

但是,我想要最新的日期值; 我可以这样做第一行:

SELECT BLA
FROM BLA
WHERE BLA
ORDER BY FINALDATE DESC
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试混合两个部分胜利时,它不起作用 - 显然"选择第一行"逻辑顺序之前触发,然后顺序依次被忽略.

sql oracle sql-order-by

17
推荐指数
2
解决办法
8万
查看次数

使用rails将不同的顺序应用于postgres"DISTINCT ON"

我有一个rails应用程序:

user has_many :projects

user has_many :tasks, :through => :projects

project has_many :tasks

每项任务都有一个里程碑日期.

要显示我正在使用的下一个里程碑日期的项目详细信息表:

@projects = current_user.tasks.joins(:project).select("distinct on (projects.id) projects.*, tasks.*").reorder("projects.id, tasks.milestone ASC")
Run Code Online (Sandbox Code Playgroud)

这很好用.

我现在希望能够对表列进行排序.

根据Postgres DISTINCT ON不可排序,你必须将它包装在另一个select语句中,即SELECT * FROM (SELECT DISTINCT ON....) ORDER BY column_3

我确实认为订购的列可以根据需要在SQL中使用,即(按项目名称DESC排序):

@projects = current_user.tasks.joins(:project).select("distinct on (projects.name) projects.*, tasks.*").reorder("projects.name DESC, tasks.milestone ASC")
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我也希望能够通过里程碑进行排序,但这样做不起作用.

有人能告诉我如何转换我的rails查询,以便可以通过任何列进行排序吗?

UPDATE


我想我的问题很简单我怎么在周围包裹一个ActiveRecord的查询SELECTORDER BY

我想我已经成功实现了它:

inner_query = current_user.tasks.select("distinct on (projects.id) projects.*, tasks.*").reorder("projects.id, tasks.milestone ASC").to_sql
@projects = Task.paginate_by_sql("select * from (#{inner_query}) as user_projects order by user_projects.name", …
Run Code Online (Sandbox Code Playgroud)

activerecord sql-order-by distinct-on ruby-on-rails-3

17
推荐指数
1
解决办法
8437
查看次数

是否有可能在mysql查询中手动选择顺序?

我有桌子:

table1
------------
id  |  name
------------
1   |  John
2   |  Steeve
3   |  Walter
4   |  Daniel
5   |  Jeremy
6   |  Carmelo
...
Run Code Online (Sandbox Code Playgroud)

我需要的是从表中选择我手动输入例如id 5,3,6,1,4,2

SELECT * FROM talbe1 ORDER BY (5,3,6,1,4,2)
Run Code Online (Sandbox Code Playgroud)

有可能吗?谢谢!

mysql sql-order-by

16
推荐指数
1
解决办法
5504
查看次数

使用别名在ORDER BY中添加Postgres CASE

我有以下查询在Postgres 9.1中很有用:

SELECT users.id, GREATEST(
 COALESCE(MAX(messages.created_at), '2012-07-25 16:05:41.870117'),
 COALESCE(MAX(phone_calls.created_at), '2012-07-25 16:05:41.870117')
) AS latest_interaction
FROM users LEFT JOIN messages ON users.id = messages.user_id
LEFT JOIN phone_calls ON users.id = phone_calls.user_id
GROUP BY users.id
ORDER BY latest_interaction DESC
LIMIT 5;
Run Code Online (Sandbox Code Playgroud)

但我想做的是这样的事情:

SELECT users.id, GREATEST(
 COALESCE(MAX(messages.created_at), '2012-07-25 16:05:41.870117'),
 COALESCE(MAX(phone_calls.created_at), '2012-07-25 16:05:41.870117')
) AS latest_interaction
FROM users LEFT JOIN messages ON users.id = messages.user_id
LEFT JOIN phone_calls ON users.id = phone_calls.user_id
GROUP BY users.id
ORDER BY
  CASE WHEN(
    latest_interaction > '2012-09-05 16:05:41.870117')
  THEN …
Run Code Online (Sandbox Code Playgroud)

sql postgresql case sql-order-by aggregate-functions

16
推荐指数
1
解决办法
2万
查看次数