![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запрос к базе [D7, AdvantageDataBase]
Jann © (2005-08-08 14:27:00)помогите уважаемые мастера!!!!
выполняю такой запрос:
insert into vr_ras select *
from ras
все нормально
а мне хотелось бы чтобы в итоговой таблице данные были отсортированы, поэтому делаю такой запрос:
insert into vr_ras select *
from ras
order by data
в ходе выполнения выдается ошибка:
Unexpected toked:order:found extra tokens after expected end of statement
Что мне делать???
Леван (2005-08-09 10:25:00) [1]to paul_k :
повторюсь : согласен :)
paul_k (2005-08-09 10:21:00) [2]Леван (09.08.05 10:16) [12]
повтрюсь: а смысл в такой работе?
paul_k (2005-08-09 10:19:00) [3]Jann © (08.08.05 14:27)
insert into vr_ras select *
from ras
не есть верно
более "правильно" писать
insert into vr_ras (field1, field2,...,fieldN)
select ras.field1, ras.field2,...,ras.fieldN
from ras
То есть явно указывать в какое поле какое значение ты запихиваешь.
Как выше написано никакого смысла хранить сортированные записи в таблицах нет. Просто при получении данных не забывать указывать по какому полю сортировка в данный момент времени в указанном наборе данных.
Закралось подозрение, что VR_RAS - отсортированная копия таблицы RAS. Это есть совершенно безсмысленное расходование ресурсов.
Просто в тот момент, когда тебе надо отобразить отсортированный набор данный меняй параметр в order by запроса, возвращающего набор данных
Леван (2005-08-09 10:16:00) [4]то paul_k :
согласен, что лучше запихнуть данные в temp в произвольном порядке , а извлеч оттуда потом в нужном порядке , но я писал толко то, что конструкция работает и у задававшего вопрос колеги проблема в другом месте (по видимому)
paul_k (2005-08-09 10:09:00) [5]Леван (09.08.05 10:02) [9]
А смысл??, если потом при выборке поставишь совершенно другой ордер бай?
А сервер?? зачем его лишней сортировкой нагрудать?
И на каком сервере тестировал?
А что по этому вопросу пишет стандарт?
Леван (2005-08-09 10:04:00) [6]вдогонку: какие структуры у Ras и vr_ras?
Леван (2005-08-09 10:02:00) [7]Мастера:
Извините, но только что проверил
insert into temp (COD_A,NAM_A) select COD_A,NAM_A FROM NOTEMP order by NAM_A' работает в дельфи .
мне кажется, что в операторе
'insert into name (fieldlist) select filedlist from oldname order by somefield ' опция order by принадлежит не insert-у, а select-у
Anatoly Podgoretsky (2005-08-08 15:52:00) [8]Jann © (08.08.05 15:28) [4]
Чего решить то? Нечего решать, порядок хранения определяет сервер, а не пользователь и этот порядок может многократно меняться.
Alexander Panov (2005-08-08 15:40:00) [9]Если тебе необходимо вставлять записи именно в том порядке, в каком хочешь, придется вставлять вкаждую запись отдельно.
Т.е. выполняешь запрос Select с ORDER BY, затем проходишь в цикле сначала до конца по полученному набору данных, и выполняешь INSET для каждой записи.
Но задумайся - стоит ли овчинка выделки. Эта операция будет на порядок медленнее групповой вставки данных.
Ega23 (2005-08-08 15:34:00) [10]Для операции insert Order By не имеет никакого смысла. Хотя бы потому, что операция Insert не возвращает набор данных. Как, впрочем, и операции Update и Delete.
Конструкция Order By имеет смесл ТОЛЬКО с операцией Select.
Leonid Troyanovsky (2005-08-08 15:33:00) [11]
> Jann © (08.08.05 15:28) [4]
> как-то решить это можно
Не размещать extra tokens after expected end of statement.
--
Regards, LVT.
PS По-русски было б доходчивей, но, увы, не положено.
Jann (2005-08-08 15:28:00) [12]как-то решить это можно
alles (2005-08-08 15:13:00) [13]для инсерта ордер не имеет смысла. Инсерт используется в основном для сортировке данных по данному полю / ях.
Jann (2005-08-08 14:42:00) [14]пожалуста подскажите как тогда быть??
хотя в Query Analyzer
insert into vr_ras select *
from ras
order by data
такая конструкция работает нормально
Anatoly Podgoretsky (2005-08-08 14:38:00) [15]order by не применимо к insert into и не имеет никакого смысла.