UNION获得的行的前10个结果

Mad*_*ada 1 sql sql-server union sql-server-2005

我使用MSSQL 2005进行查询,说:

SELECT * from Emp UNION ALL SELECT * from Emp2;
Run Code Online (Sandbox Code Playgroud)

我想将最终结果限制为10行.如果我只有Emp表,我会说

SELECT TOP 10 * from Emp;
Run Code Online (Sandbox Code Playgroud)

但由于我现在有两张桌子,我不能在任何一张桌子上说SELECT TOP*,最后我也不能使用LIMIT 10.你有什么建议吗?

dcp*_*dcp 8

SELECT TOP 10 * FROM
(SELECT * from Emp UNION ALL SELECT * from Emp2) a
Run Code Online (Sandbox Code Playgroud)

但是,我建议您可以订购结果,这样您就不会从第一个工会结果中获得前10名的结果.所以这样的事情可能是:

SELECT TOP 10 * FROM
(SELECT * from Emp UNION ALL SELECT * from Emp2) a
ORDER BY a.lastName
Run Code Online (Sandbox Code Playgroud)