3

我有一个使用以下语法的查询:

select x.a as a, x.b as b, x.c as c
from
  (select distinct a from foo
     order by y) as x
  left join zzz....
  left join yyy...;

我现在想在order by外部选择语句中加入一个。

将它附加到末尾 - 它不喜欢语法,并将其放在 as 显然是有效的语法之前,但在省略order by肯定返回结果时返回一个空结果集。

有什么理论吗?

很抱歉变量名,但它们并不是很重要——更多的是关于order by我关心的位置。

4

3 回答 3

3

Order By 位于外部 Select 中的 Where 之后。如果没有“Where”,那么您将把它放在连接中的最后一个 On (X=X) 选择器之后。

于 2010-02-08T15:08:26.280 回答
0

您的第一个子查询真的是按 y 排序(选择中未包含的字段)吗?这一点使您的问题变得更加困难。您要排序的字段应包含在子查询中,这样您就可以在外部进行排序。

select x.a as a, x.b as b, x.c as c
from
  (select distinct a from foo) as x
  left join zzz....
  left join yyy...
order by x.a

如果您出于某种原因确实需要按 y 的顺序,您能否更好地解释您的问题,或者包括您尝试使用的实际查询。

于 2010-02-08T15:15:18.557 回答
-1

你不能把它放在分号之后,必须放在它之前

select x.a as a, x.b as b, x.c as c
from
  (select distinct a from foo
     order by y) as x
  left join zzz....
  left join yyy...
order by <column list>;
于 2010-02-08T15:18:36.510 回答