Использование Order by с созданием представления или вставкой в ​​Interbase

У меня проблемы с сортировкой данных в базе данных, моя временная метка находится в отдельных столбцах года, месяца, даты и т. Д., Поэтому мне нужно сделать заказ в таком порядке (хотя в этом случае он не будет работать даже для заказа по одному полю), По какой-то причине команда ORDER выдает ошибку "неизвестный токен" при использовании в сочетании с CREATE VIEW или INSERT INTO. Я делаю глупую синтаксическую ошибку здесь, или есть более фундаментальная проблема с тем, как я пытаюсь использовать команду ORDER?

CREATE VIEW HOURLY_AVES_SORT (MEASYEAR,MEASMONTH,MEASDAY,MEASHOUR,GH,GK,GDH,TA) as
SELECT
  HOURLY_AVES_ALL.MEASYEAR, HOURLY_AVES_ALL.MEASMONTH, HOURLY_AVES_ALL.MEASDAY,
  HOURLY_AVES_ALL.MEASHOUR, /*HOURLY_AVES.MEASMIN, HOURLY_AVES_ALL.MEASSECOND, */
  HOURLY_AVES_ALL.GH, HOURLY_AVES_ALL.GK, HOURLY_AVES_ALL.GDH, HOURLY_AVES_ALL.TA

FROM HOURLY_AVES

ORDER BY
   HOURLY_AVES_ALL.MEASYEAR, HOURLY_AVES_ALL.MEASMONTH, HOURLY_AVES_ALL.MEASDAY,
  HOURLY_AVES_ALL.MEASHOUR

пытаясь скопировать данные в другую таблицу, а не в представление, выдает ту же самую маркерную неизвестную ошибку, т.е.

INSERT INTO HOURLY_AVES_SORTED 
(MEASYEAR,MEASMONTH,MEASDAY,MEASHOUR,GH,GK,GDH,TA)

SELECT 
HOURLY_AVES_ALL.MEASYEAR, HOURLY_AVES_ALL.MEASMONTH, HOURLY_AVES_ALL.MEASDAY,
HOURLY_AVES_ALL.MEASHOUR, /*HOURLY_AVES.MEASMIN, HOURLY_AVES_ALL.MEASSECOND, */
HOURLY_AVES_ALL.GH, HOURLY_AVES_ALL.GK, HOURLY_AVES_ALL.GDH, HOURLY_AVES_ALL.TA

FROM HOURLY_AVES

ORDER BY
(MEASYEAR, MEASMONTH, MEASDAY,MEASHOUR, GH, GK,GH, TA) 

любые советы очень приветствуются, Брайан

2 ответа

Решение

Interbase не поддерживает ORDER BY пункт в SELECT утверждение мнения. См. Документацию, стр. 8-4 в Руководстве по определению данных (вы найдете страницу при выборе из закладок "Работа с представлениями" -> "Создание представлений" -> "Использование оператора SELECT").

Попробуйте использовать номера столбцов:

CREATE VIEW HOURLY_AVES_SORT (MEASYEAR,MEASMONTH,MEASDAY,MEASHOUR,GH,GK,GDH,TA) as
SELECT
  h.MEASYEAR, h.MEASMONTH, h.MEASDAY, h.MEASHOUR, 
  h.GH, h.GK, h.GDH, h.TA

FROM 
  HOURLY_AVES h

ORDER BY
   1, 2, 3, 4
Другие вопросы по тегам