0

インターベースでデータをソートする際に問題が発生しています。私のタイムスタンプは年、月、日などの別々の列にあるため、その順序で並べ替える必要があります (ただし、この場合、単一のフィールドで並べ替えても機能しません)。 . 何らかの理由で、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) 

どんなヒントでも大歓迎です、ブライアン

4

2 に答える 2

2

Interbaseは、ビューのステートメントのORDER BY句をサポートしていません。データ定義ガイドの8-4ページSELECTのドキュメントを参照してください(ブックマークから「ビューの操作」->「ビューの作成」->「SELECTステートメントの使用」を選択すると、このページが表示されます)。

于 2012-11-14T20:32:11.210 に答える
1

列番号を使用してみてください:

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
于 2012-11-14T18:32:49.577 に答える