1

クエリにMSSQL2005を使用しています。たとえば、次のようになります。

SELECT * from Emp UNION ALL SELECT * from Emp2;

そして、最終結果を10行に制限したいと思います。Empテーブルしかない場合は、

SELECT TOP 10 * from Emp;

しかし、現在2つのテーブルがあるため、いずれにもSELECT TOP *とは言えず、最終的にLIMIT10を使用することもできません。何か提案はありますか?

4

4 に答える 4

8
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
于 2012-08-01T15:09:39.863 に答える
2

これを試して:

SELECT top 10 * from (
    SELECT * from Emp UNION ALL SELECT * from Emp2) a
于 2012-08-01T15:09:45.723 に答える
2

これを試して:

SELECT TOP 10 * 
FROM  (
         SELECT * 
         FROM Emp 
          UNION ALL 
         SELECT * 
         FROM Emp2
      ) derivedTable
于 2012-08-01T15:11:41.650 に答える
1

UNIONedクエリをサブクエリにし、その中から上位10行を選択します。

SELECT TOP 10 * FROM (
    SELECT * FROM Emp
    UNION ALL
    SELECT * FROM Emp2
) unioned
于 2012-08-01T15:11:00.103 に答える