#sql #database #sql-server-2000 #sql-order-by
#sql #База данных #sql-server-2000 #sql-order-by
Вопрос:
Я запускаю следующий запрос:
select syscolumns.name
from syscolumns,sysobjects
where
syscolumns.id = sysobjects.id and
sysobjects.name='TABLE_NAME'
Что может быть причиной того, что в одной системе столбцы возвращаются в алфавитном порядке, а в другой они возвращаются в том порядке, в котором столбцы были добавлены в таблицу?
Я знаю, что не должен полагаться на порядок по умолчанию, и я должен использовать ORDER BY , но я хочу знать, почему это так. Параметры сортировки?
Спасибо!
Комментарии:
1. Порядка по умолчанию не существует — вы видите то, что ожидается — в зависимости от любого количества влияющих факторов порядок возвращаемых строк может отличаться от случая к случаю. Это может быть связано с расположением страниц, с которых SQL Server считывает эти данные, или многими другими факторами — если вам нужен порядок, запросите его по
ORDER BY
— это действительно все, что нужно знать2. @marc_s: вы должны сделать это ответом
Ответ №1:
Нет порядка по умолчанию, на который вы могли бы «положиться», если вы явно не укажете ORDER BY
.
То, что вы видите, является ожидаемым поведением; в зависимости от любого количества влияющих факторов порядок возвращаемых строк может отличаться от случая к случаю, от сервера к серверу.
Это может быть связано с расположением страниц, которые SQL Server считывает с диска, или многими другими факторами.
Вкратце: если вам нужен порядок, запросите его по ORDER BY
— это действительно все, что нужно знать.
Комментарии:
1. Спасибо. Я понимаю это, я просто не понимаю, почему некоторые конкретные машины ВСЕГДА возвращают результаты в алфавитном порядке.