Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запрос к базе [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 и не имеет никакого смысла.


Наверх

Титульная страница Поиск, карта сайта Написать письмо