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

Откуда: г. Екатеринбург
Сообщений: 687
Добрый день.

Необходимо получить набор данных, таким образом, чтоб каждый раз он был "перемешан" т.е. имел всегда разную сортировку.

Подскажите как это сделать?
21 дек 16, 15:30    [20032507]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
Eleanor
Member

Откуда:
Сообщений: 3425
ORDER BY newid()
21 дек 16, 15:34    [20032528]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Игорь_UUS,
и это не самый популярный вопрос.... ORDER BY NEWID() ну и его варианты
21 дек 16, 15:34    [20032530]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 687
TaPaK
Игорь_UUS,
и это не самый популярный вопрос.... ORDER BY NEWID() ну и его варианты


Спасибо. Конечно всё работает в хранимой процедуре. Но т.к. данный набор данных нужно использовать в нескольких местах, решил обернуть в функцию, но функция не компелируется... пишет:

"Недопустимое использование оператора "newid", оказывающего побочное действие, в функции."

Тут либо никак? либо тиражировать запрос в разных местах?
22 дек 16, 07:48    [20034988]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
Игорь_UUS,

также представления существуют.
22 дек 16, 11:00    [20035541]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Владислав Колосов
Игорь_UUS,

также представления существуют.
с сортировочкой?
22 дек 16, 11:01    [20035546]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
TaPaK
Владислав Колосов
Игорь_UUS,

также представления существуют.
с сортировочкой?
А что такого?
Хотя и неправильно это...
Гарантия упорядочивания строк - ORDER BY во внешнем запросе
22 дек 16, 11:39    [20035715]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
Зато есть дефолтная сортировка, если не нравится - можно всегда пересортировать.
22 дек 16, 12:07    [20035869]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Владислав Колосов
Зато есть дефолтная сортировка, если не нравится - можно всегда пересортировать.

а что такое "дефолтная сортировка" нам такое неведомо :)
22 дек 16, 12:08    [20035877]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
В представлении:
SELECT TOP(SELECT 100) PERCENT
......
......
ORDER BY .....;
Но, поскольку это недокументировано, в любой момент Microsoft может это поведение изменить.
22 дек 16, 12:11    [20035905]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
iap
В представлении:
SELECT TOP(SELECT 100) PERCENT
......
......
ORDER BY .....;
Но, поскольку это недокументировано, в любой момент Microsoft может это поведение изменить.

все немного хуже... в представлении это выбрасывается оптимизатором, и на выходе нет сортировки
22 дек 16, 12:21    [20035949]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
TaPaK
в представлении это выбрасывается оптимизатором
Выбрасывается top (100) percent. Данный хак не выбрасывается и сортировка есть.
Имхо, надежней обманывать как-то так: select top (cast(0x7fffffffffffffff as bigint) - 1) ...

А лучше быть честным и не обманывать :)
22 дек 16, 12:31    [20035993]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
TaPaK
iap
В представлении:
SELECT TOP(SELECT 100) PERCENT
......
......
ORDER BY .....;

Но, поскольку это недокументировано, в любой момент Microsoft может это поведение изменить.

все немного хуже... в представлении это выбрасывается оптимизатором, и на выходе нет сортировки
Осталось только проверить
22 дек 16, 12:34    [20036013]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
invm
TaPaK
в представлении это выбрасывается оптимизатором
Выбрасывается top (100) percent. Данный хак не выбрасывается и сортировка есть.
Имхо, надежней обманывать как-то так: select top (cast(0x7fffffffffffffff as bigint) - 1) ...

А лучше быть честным и не обманывать :)

ну так поробуйте
22 дек 16, 12:36    [20036021]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
хотя да, что то я на PERCENT зациклился... TOP 10000000 ORDER BY будет работать :)
22 дек 16, 12:39    [20036032]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
TaPaK
ну так поробуйте
Все уже попробовано до нас.
top (select 100) percent - давно известный хак.
22 дек 16, 12:46    [20036078]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
invm
TaPaK
ну так поробуйте
Все уже попробовано до нас.
top (select 100) percent - давно известный хак.

тю... то я слепой :)
22 дек 16, 12:51    [20036115]     Ответить | Цитировать Сообщить модератору
 Re: Произвольная сортировка набора данных. Такое возможно?  [new]
sergeimv
Member

Откуда: Россия, г.Казань
Сообщений: 42
https://msdn.microsoft.com/en-us/library/cc441928.aspx
22 дек 16, 13:24    [20036376]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить