小编Goa*_*ine的帖子

按父列排序的不同子行

我有一个查询,我想在其中检索不同的Child行,但按Parent. 如果我执行以下操作,则会收到错误消息,因为 中指定的列ORDER BY未包含在DISTINCT列表中:

SELECT
    DISTINCT c.foo, c.bar
    FROM Parent p
    JOIN Child c on c.parentId = p.id
    ORDER BY p.createdDate
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加p.createdDate到选择列表中,我将失去Child行的独特性,因为p.createdDate它们都不同。

如果我使用 CTE 或子查询首先进行排序,然后从中选择不同的行,则外部查询不保证它将保持内部/cte 查询的顺序。

有没有办法实现这一目标?

sql-server-2008 sql-server order-by t-sql distinct

0
推荐指数
1
解决办法
1767
查看次数

标签 统计

distinct ×1

order-by ×1

sql-server ×1

sql-server-2008 ×1

t-sql ×1