2015-11-20 2 views
4

я имею таблицу с данными нижеПоказать альтернативный результат на основе значения столбца

id  name   gender(Enum : Male,Female) 
1  John Doe  Male 
2  Panther Jow  Male 
3  Faran Aktar  Female 
4  Rohan Fusi  Male 
5  Soham Das  Female 
6  Rohit Dutta  Female 
7  Sozi Petacus Male 
8  Tuhin Dtui  Male 

я хочу SQL-запрос, где результат должен просматривать с одного мужчины и одной женщины затем снова один мужчина и одна женщина непрерывно. если после мужского или женского результата, если невозможно получить следующие женские или мужские данные, тогда будет показан весь результат. например,

id  name   gender(Enum : Male,Female) 
    1  John Doe  Male 
    3  Faran Aktar  Female 
    2  Panther Jow  Male 
    5  Soham Das  Female 
    4  Rohan Fusi  Male 
    6  Rohit Dutta  Female 
    7  Sozi Petacus Male 
    8  Tuhin Dtui  Male 

Если кто-нибудь может мне помочь, я буду рад его/ее. Заранее спасибо

ответ

1

Вы можете попробовать это:

SELECT rnk, name ,gender 
FROM (
    SELECT STRAIGHT_JOIN id, name, @y:=IF(@gender=gender,@y+1,1) AS rnk, @gender:=gender AS gender 
    FROM (SELECT @gender:=NULL) AS x 
    JOIN test 
    ORDER BY gender, name DESC 
) AS t 
ORDER BY rnk ASC, gender DESC; 

FIDDLE DEMO

+0

спасибо за ваш ответ, но он не работает для меня –

+0

@TapasKarmakar: - Определить не работает. Я добавил ссылку и ее работу для меня. Проверьте связь с выходом. –

+0

вы можете попробовать другой sql-запрос, чтобы помочь мне ......... –

0

Привет попробовать это -

SELECT * 
    FROM <table_name> 
    WHERE IF(gender = "Male", "Female", "Male"); 
+1

спасибо за ваш пост, но он не работает –

Смежные вопросы