Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Два вопроса: как не сортироватьв union и как склеить в строку  [new]
Label
Member

Откуда:
Сообщений: 45
Здравствуйте уважаемы. У меня два (наверное идиотских) вопроса

1. Как при выполнении union запроса запретить сортировать результат по первой (и единственнйо колонке)?
select 'Яма' union select 'Мыла' union select 'Африка'


Выдает:
------
Африка
Мыла
Яма

А надо в "порядке поступления"

Второй вопрос:
Как значения из столбца "склеить" в одну строку (строковую переменную)?
12 сен 03, 10:48    [336259]     Ответить | Цитировать Сообщить модератору
 Re: Два вопроса: как не сортироватьв union и как склеить в строку  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31606

select 'Яма' union select 'Мыла' union select 'Африка' union select 'Африка'
select 'Яма' union all select 'Мыла' union all select 'Африка' union all select 'Африка'
12 сен 03, 10:51    [336268]     Ответить | Цитировать Сообщить модератору
 Re: Два вопроса: как не сортироватьв union и как склеить в строку  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
ответ а первый вопрос (понятно кстати, почему?):
select 'Яма' union all select 'Мыла' union all select 'Африка'

на второй: faq
12 сен 03, 10:51    [336271]     Ответить | Цитировать Сообщить модератору
 Re: Два вопроса: как не сортироватьв union и как склеить в строку  [new]
Label
Member

Откуда:
Сообщений: 45
Спасибо за ответы.
union all действительно помогло :-)
Правда так и не понял, в чем отличие.
Нашел только в BOL, что

UNION Specifies that multiple result sets are to be combined and returned as a single result set.

ALL Incorporates all rows into the results, including duplicates. If not specified, duplicate rows are removed.


Как связаны повторяющиеся значения и сортировки не понял. Разве нельзя убрать повторяющиеся значения, не отсортировывая?

По второму вопросу тоже въехал. Оказалось просто:
SELECT @strVar=@strVar+ ' '+ [Field1] FROM Table1


Спасибо всем кто откликнулся.
12 сен 03, 11:43    [336416]     Ответить | Цитировать Сообщить модератору
 Re: Два вопроса: как не сортироватьв union и как склеить в строку  [new]
Glory
Member

Откуда:
Сообщений: 104760
Как связаны повторяющиеся значения и сортировки не понял. Разве нельзя убрать повторяющиеся значения, не отсортировывая?

Вам надо запомнить на будущее, что единственно верный способ получить результаты запроса в нужном вам порядке это использовать ORDER BY. Во всех остальных случаях сервер будет возвращать записи в том порядке, который удобен ему.
12 сен 03, 11:47    [336425]     Ответить | Цитировать Сообщить модератору
 Re: Два вопроса: как не сортироватьв union и как склеить в строку  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
>Как связаны повторяющиеся значения и сортировки не понял. Разве нельзя убрать повторяющиеся значения, не отсортировывая? <

серверу, чтобы выяснить, есть ли повторы, нужно отсортировать (есть другие алгоритмы, но они неэффективны), а поскольку ты не запросил явно сортировку, то он отдает данные в том порядке, в котором это у него внутрях сложилось
12 сен 03, 12:19    [336505]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить