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外側の select ステートメントに入れたいと思います。

それを最後に付ける - 構文が好きではなく、 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に含まれていないフィールド)による順序を本当に意味しましたか?このビットはあなたの問題をより難しくします。順序付けするフィールドはサブクエリに含まれている必要があります。これにより、外側のセクションで順序付けを行うことができます。

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 に答える