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

Откуда:
Сообщений: 517
День добрый!
Есть такой вопрос, гарантирована ли ситуация, что в данном примере данные в таблице будут отсортированы именно в таком порядке, согласно n:
Существует пример, когда данные из таблицы Src копируются в Dst, путем insert into #Dst select from #Src order by..., т.е.
Create table #Src (id int identity (1,1),Col_1 int,Col_2 int)
Insert into #Src (Col_1,Col_2)
Select 10,100 union
Select 20,200 union
Select 30,300 

Create table #Dst (id int identity (1,1),n int)

Insert into #Dst (n)
Select Col_2 From #Src order by Col_1 
 

Хотелось бы узнать, если после такого импорта выполняется:
Select * from #Dst order by Id

То означает ли это, что данные будут отсортированы и по n?
Или все-таки, если необходимо отсортировать по n, то необходимо выполнить:
Select * from #Dst order by n

?
Спасибо!
23 мар 17, 19:33    [20327296]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз разобраться с сортировкой.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Identity генерируется в порядке order by запроса. А как оно там физически хранится, только dbcc page знает.
23 мар 17, 19:48    [20327340]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз разобраться с сортировкой.  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
abrashka
То означает ли это, что данные будут отсортированы и по n?
В общем случае нет.
23 мар 17, 21:19    [20327526]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз разобраться с сортировкой.  [new]
aleks2
Guest
invm
abrashka
То означает ли это, что данные будут отсортированы и по n?
В общем случае нет.

В общем и сферическом - могет и нет.

А для случая тредстартера - однозначно.
Данные будут отсортированы по Col_1.
И это документировано.
24 мар 17, 08:25    [20328051]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз разобраться с сортировкой.  [new]
o-o
Guest
aleks2
...
И это документировано.

это *было* документировано.
раньше на фразу
"The behavior of the IDENTITY function when used with SELECT INTO or INSERT .. SELECT queries that contain an ORDER BY clause"
вываливалась соответствующая статья,
а теперь только цитаты
автор
If you want the IDENTITY values to be assigned in a sequential fashion that follows the ordering in the ORDER BY clause,
create a table that contains a column with the IDENTITY property and then run an INSERT .. SELECT … ORDER BY query to populate this table.

и *битые* ссылки: статью замылили, интересно в честь чего
24 мар 17, 10:37    [20328539]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз разобраться с сортировкой.  [new]
aleks2
Guest
o-o
aleks2
...
И это документировано.

это *было* документировано.
раньше на фразу
"The behavior of the IDENTITY function when used with SELECT INTO or INSERT .. SELECT queries that contain an ORDER BY clause"
вываливалась соответствующая статья,
а теперь только цитаты
автор
If you want the IDENTITY values to be assigned in a sequential fashion that follows the ordering in the ORDER BY clause,
create a table that contains a column with the IDENTITY property and then run an INSERT .. SELECT … ORDER BY query to populate this table.

и *битые* ссылки: статью замылили, интересно в честь чего


Не ссы.
Мелкософт с обратной совместимостью не шутит.
24 мар 17, 10:46    [20328575]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз разобраться с сортировкой.  [new]
o-o
Guest
я не про это.
кто не успел, тот опоздал?
если я ничего не знаю по этому поводу и начинаю со всем разбираться только сегодня,
мне остается лишь верить на слово тем, кто это читал?
давайте вообще уволим всю официальную документацию и будем довольствоваться
россказнями в интернете
24 мар 17, 10:53    [20328608]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз разобраться с сортировкой.  [new]
aleks2
Guest
Есть еще блоги...
https://blogs.msdn.microsoft.com/sqltips/2005/07/20/ordering-guarantees-in-sql-server/
24 мар 17, 12:32    [20329127]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз разобраться с сортировкой.  [new]
abrashka
Member

Откуда:
Сообщений: 517
Спасибо!
Таки уговорил добавить "order by" в селект.
28 мар 17, 17:16    [20342779]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить