![]() |
![]() |
|
v8: Про сортировку данных во временных таблицах | ☑ | ||
---|---|---|---|---|
0
pmb
09.11.10
✎
10:21
|
Есть таблица значений, в запросе выбираю часть ее колонок во временную таблицу, далее выбираю эти же поля из временной таблицы, Результат запроса выгружаю в ТЗ.
Фактически получаю ту же таблицу значений только с меньшим набором колонок. Только в полученной ТЗ порядок строк не всегда совпадает с источником. Почему такое происходит? |
|||
1
pmb
09.11.10
✎
10:21
|
Блин, в теме должно быть "Про сортировку данных во временных таблицах". Поправте пожалуйста :)
|
|||
2
mikecool
09.11.10
✎
10:22
|
а что удивляет? насколько помнится, в разных скулях сортировка по умолчанию разная
|
|||
3
Speshuric
09.11.10
✎
10:23
|
(0) запрос "ВЫБРАТЬ ... ИЗ ..." может возвращать строки в произвольном порядке пока не указано "УПОРЯДОЧИТЬ ПО"
|
|||
4
pmb
09.11.10
✎
10:24
|
MSSQL. Как он тогда сортирует эти данные во временной таблице?
|
|||
5
6tuf
09.11.10
✎
10:24
|
(0) временные таблицы в запросе не дают себя сортировать. сортировку можно делать только в конечной таблице. а как он до конечной таблицы данные сортирует - бог его знает
|
|||
6
Defender aka LINN
09.11.10
✎
10:25
|
(0) И что?
|
|||
7
mikecool
09.11.10
✎
10:25
|
(6) да вы, батенька, еврей )
|
|||
8
pmb
09.11.10
✎
10:28
|
Просто нелогично получается. Помещаешь данные в ВТ, выбираешь данные из ВТ но уже с другим порядком. Это ж не физическая таблица базы данных.
(7) :))) |
|||
9
mikecool
09.11.10
✎
10:29
|
(8) "Это ж не физическая таблица базы данных. " а какая??
|
|||
10
Defender aka LINN
09.11.10
✎
10:29
|
(7) Зачем ви т'гавите? :)
(8) Таки кто вам сказал, что не физическая? |
|||
11
Speshuric
09.11.10
✎
10:29
|
(8) "Это ж не физическая таблица базы данных. " - с каких пор? Вполне физическая таблица в БД tempdb.
|
|||
12
pmb
09.11.10
✎
10:34
|
(11) ну ладно физическая. Тока все равно нелогично.
У ТЗ даже номер строки не вытащишь в ВТ, приходится делать для этого дополнительную колонку |
|||
13
упс
09.11.10
✎
10:43
|
sql server не обязан хранить данные упорядоченными, как бы вы их туда не записывали. Чтобы гарантировать нужный вам порядок строк используйте УПОРЯДОЧИТЬ ПО (order by)
|
|||
14
Speshuric
09.11.10
✎
10:45
|
(12) Как раз в логике выполнения запросов всё логично. Есть таблица, есть запрос, запрос не упорядочен - возвращаем как удобнее. То, что эта временная таблица когда-то была таблицей значений MS SQL не в курсе.
|
|||
15
pmb
09.11.10
✎
10:48
|
а в файловой версии как поведет себя такой запрос?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |