2015-03-31 83 views
0

select name from persons where gender = 'male' order by name limit 10SQL查詢含有2的結果集

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

我怎樣才能獲得前10名男性和第10位女性中的一個結果集(20項),與單個SQL查詢電話?這可能嗎?

回答

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 
) 
0

這是可能的,這就是所謂的UNION

+0

這並不提供答案的問題。要批評或要求作者澄清,請在其帖子下方留言。 – 2015-03-31 16:42:11

+0

是的,這意味着正在閱讀的人有一些大腦,不適用於「複製和粘貼軟件」LTD – 2015-03-31 16:44:20

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 
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 ; 
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