Sql 在Interbase中使用Order by和create view或insert

Sql 在Interbase中使用Order by和create view或insert,sql,firebird,interbase,Sql,Firebird,Interbase,我在interbase中排序数据时遇到问题,我的时间戳在年、月、日期等不同的列中,因此我需要按该顺序排序(尽管在这种情况下,即使按单个字段排序也不起作用)。 由于某些原因,ORDER命令与CREATE VIEW或INSERT INTO结合使用时会引发“token unknown”错误。我是否在这里犯了一个愚蠢的语法错误,或者我尝试使用ORDER命令的方式是否存在更根本的问题 CREATE VIEW HOURLY_AVES_SORT (MEASYEAR,MEASMONTH,MEASDAY,MEAS

我在interbase中排序数据时遇到问题,我的时间戳在年、月、日期等不同的列中,因此我需要按该顺序排序(尽管在这种情况下,即使按单个字段排序也不起作用)。 由于某些原因,ORDER命令与CREATE VIEW或INSERT INTO结合使用时会引发“token unknown”错误。我是否在这里犯了一个愚蠢的语法错误,或者我尝试使用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) 

欢迎使用任何提示,Brian

尝试使用列号:

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

尝试使用列编号:

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


Interbase不支持视图的
SELECT
语句中的
orderby
子句。请参阅文档,(当您从书签中选择“使用视图”->“创建视图”->“使用SELECT语句”时,您将看到该页面。)

Interbase不支持视图的
SELECT
语句中的
ORDER BY
子句。请参阅文档(当您从书签中选择“使用视图”->“创建视图”->“使用SELECT语句”时,您将看到该页面)。

您使用的Interbase版本是什么?Interbase的旧版本(即开源版本6)不支持视图的
SELECT
语句中的
orderby
子句。Firebird在版本2中实现了它,我不确定Interbase。嗨,我正在Interbase 2009中使用EMS SQL管理器。视图中的ORDER BY没有意义。视图本质上类似于一个表,它不是有序的。当您从视图中选择时,只需添加一个order by。如果视图只选择Ext x first records,那么您需要使用
order by
来获得所需的结果,这是有意义的。您使用的Interbase版本是什么?Interbase的旧版本(即开源版本6)不支持视图的
SELECT
语句中的
orderby
子句。Firebird在版本2中实现了它,我不确定Interbase。嗨,我正在Interbase 2009中使用EMS SQL管理器。视图中的ORDER BY没有意义。视图本质上类似于一个表,它不是有序的。当您从视图中选择时,只需添加一个order by。在视图仅选择Ext x first records的情况下,这是有意义的-然后您希望使用
order by
来获得所需的结果。嗯,好的,我得到的印象是,使用INSERT-INTO和order也存在冲突。如果我使用ORDER时既不插入视图也不创建视图,那么它可以正常工作。我可以通过运行SELECT..ORDER by查询并另存为csv来解决这个问题,然后重新导入数据。有序插入的原因是什么?Andrej,说得好。我习惯于按时间顺序查看我的数据,因为如果有什么不对劲,很容易快速发现。但我确实可以通过脚本将其作为单独的选择顺序进行查看或导出,如果两者之间没有顺序,我也不会太担心。对不起,该网站只允许我“接受”1个有效答案。在这种情况下,正如通常情况一样,AIN和Andrejs的回答都很有帮助。我给了Andrej一个“accept”来回答另一个问题,所以希望每个人都能满足:-)@AndrejKirejeŭ如果表包含分层数据,那么您希望在插入子项之前插入父项记录-因此您需要select语句中的order by子句,它是insert.hmm的源,好的,我得到的印象是,使用INSERT-in和ORDER也存在冲突。如果我使用ORDER时既不插入视图也不创建视图,那么它可以正常工作。我可以通过运行SELECT..ORDER by查询并另存为csv来解决这个问题,然后重新导入数据。有序插入的原因是什么?Andrej,说得好。我习惯于按时间顺序查看我的数据,因为如果有什么不对劲,很容易快速发现。但我确实可以通过脚本将其作为单独的选择顺序进行查看或导出,如果两者之间没有顺序,我也不会太担心。对不起,该网站只允许我“接受”1个有效答案。在这种情况下,正如通常情况一样,AIN和Andrejs的回答都很有帮助。我给了Andrej一个“accept”来回答另一个问题,所以希望每个人都能满足:-)@AndrejKirejeŭ如果表包含分层数据,那么您希望在插入子项之前插入父项记录-因此您需要select语句中的order by子句,它是插入的源。Andrej,感谢您的提示,我没有遇到列号,遗憾的是,在同时使用INSERT-In/CREATE VIEW和ORDER-BY时,它仍然抛出了一个“token unknown”错误。Andrej,感谢您的提示,我没有遇到列号,遗憾的是,在同时使用INSERT-In/CREATE VIEW和ORDER-BY时,它仍然抛出了一个“token unknown”错误。