0

2 つのクエリの結果の結合を選択したいと考えています。私がやろうとしているのは、特定の制約を持つ 1 つのエントリを選択し、残りの順序を他の制約によって追加することです。

Union を実行しようとしましたが、サブクエリでは注文できないため、2 番目のクエリでの注文は失敗します。

だから私がしたことは、テーブル変数を宣言してから、単一のエントリを挿入し、残りのエントリを制約順に挿入することです。

ユニオンを使用してこれを行う方法はありますか?

4

2 に答える 2

0

結合されたクエリの結果をまとめて、並べ替えを実行するだけです。何かのようなもの:

SELECT MainQ.* FROM 
(
  (SELECT * FROM MyTable AS T1 WHERE MyField = 1)
  UNION 
  (SELECT * FROM MyTable AS T2 WHERE MyField = 2)
) AS MainQ
ORDER BY MainQ.TableID
于 2013-10-23T19:03:27.503 に答える
0

ユニオン ステートメントをサブクエリとして使用し、そこから選択します。

Select * from
(select fields,1 as orderby from table
 union all 
  select fields,2 from as orderby table)a
where whatever
order by orderby,whatever

order by 句は大幅にカスタマイズすることもできます... mySQL でカスタム ORDER BY オーダーを定義する方法

たとえばmysqlの場合。

于 2013-10-23T19:04:30.500 に答える