クエリにMSSQL2005を使用しています。たとえば、次のようになります。
SELECT * from Emp UNION ALL SELECT * from Emp2;
そして、最終結果を10行に制限したいと思います。Empテーブルしかない場合は、
SELECT TOP 10 * from Emp;
しかし、現在2つのテーブルがあるため、いずれにもSELECT TOP *とは言えず、最終的にLIMIT10を使用することもできません。何か提案はありますか?
クエリにMSSQL2005を使用しています。たとえば、次のようになります。
SELECT * from Emp UNION ALL SELECT * from Emp2;
そして、最終結果を10行に制限したいと思います。Empテーブルしかない場合は、
SELECT TOP 10 * from Emp;
しかし、現在2つのテーブルがあるため、いずれにもSELECT TOP *とは言えず、最終的にLIMIT10を使用することもできません。何か提案はありますか?
SELECT TOP 10 * FROM
(SELECT * from Emp UNION ALL SELECT * from Emp2) a
ただし、最初のユニオンの結果から上位10件の結果が得られないように、結果を注文することをお勧めします。だから多分このようなもの:
SELECT TOP 10 * FROM
(SELECT * from Emp UNION ALL SELECT * from Emp2) a
ORDER BY a.lastName
これを試して:
SELECT top 10 * from (
SELECT * from Emp UNION ALL SELECT * from Emp2) a
これを試して:
SELECT TOP 10 *
FROM (
SELECT *
FROM Emp
UNION ALL
SELECT *
FROM Emp2
) derivedTable
UNIONedクエリをサブクエリにし、その中から上位10行を選択します。
SELECT TOP 10 * FROM (
SELECT * FROM Emp
UNION ALL
SELECT * FROM Emp2
) unioned