SQL Query包含2个结果集

时间:2015-03-31 12:02:48

标签: mysql sql

select name from persons where gender = 'male' order by name limit 10

select name from persons where gender = 'female' order by name limit 10

如何通过单个SQL查询调用获得单个结果集(20个条目)中的前10个男性和前10个女性?这可能吗?

5 个答案:

答案 0 :(得分:0)

正确的语法使用括号和union all

(select name
 from persons
 where gender = 'male'
 order by name
 limit 10
) union all
(select name
 from persons
 where gender = 'female'
 order by name
 limit 10
)

答案 1 :(得分:0)

这是可能的,它被称为UNION

答案 2 :(得分:0)

您可以使用UNION运营商。

  

UNION用于组合多个SELECT语句的结果   到一个结果集。

select name from persons where gender = 'male' order by name limit 10
UNION
select name from persons where gender = 'female' order by name limit 10

答案 3 :(得分:0)

  SELECT name FROM persons WHERE gender = 'male' ORDER BY name LIMIT 0,10 ;
  UNION 
 SELECT name FROM persons WHERE gender = 'female' ORDER BY name LIMIT 0,10 ;

答案 4 :(得分:0)

使用ROW_NUMBER()

SELECT * FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY gender ORDER BY gender) row_no,*  FROM Person
) A WHERE A.row_no <= 10
相关问题