我使用MSSQL 2005进行查询,比如说:
SELECT * from Emp UNION ALL SELECT * from Emp2;
我想将最终结果限制为10行。 如果我只有Emp表,我会说
SELECT TOP 10 * from Emp;
但由于我现在有两张桌子,我不能在任何一张桌子上说SELECT TOP *,最后我也不能使用LIMIT 10。 你有什么建议吗?
答案 0 :(得分: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
答案 1 :(得分:2)
试试这个:
SELECT top 10 * from (
SELECT * from Emp UNION ALL SELECT * from Emp2) a
答案 2 :(得分:2)
试试这个:
SELECT TOP 10 *
FROM (
SELECT *
FROM Emp
UNION ALL
SELECT *
FROM Emp2
) derivedTable
答案 3 :(得分:1)
使UNIONed查询成为子查询,并从中选择TOP 10行:
SELECT TOP 10 * FROM (
SELECT * FROM Emp
UNION ALL
SELECT * FROM Emp2
) unioned