Страница 1 из 1

Порядок выполнения по UNION

Добавлено: 18 янв 2007, 12:39
_sts_
Запрос (упрощенный, думаю всем понятна суть :)

Код: Выделить всё

select 'муж ' ,count(*)  from klients where k_SEX='м'
union
select '----',0 from klients
union
select 'жен ' ,count(*)  from klients where k_SEX='ж'
думал получить результат: мужики - разделитель - бабы, ан нет: разделитель - бабы - мужики!
Вопрос: откуда сортировка? (индексов никаких, план - сплошной натурал:) Это что, так надо?

Добавлено: 18 янв 2007, 12:52
WildSery
Потому что UNION делает DISTINCT, для чего и нужна сортировка.
Используй UNION ALL.

Добавлено: 18 янв 2007, 17:48
sts
WildSery писал(а):Потому что UNION делает DISTINCT, для чего и нужна сортировка.
Используй UNION ALL.
Вот спасибо!