1

我正在使用 System i Navigator 来创建视图。我的看法很简单:

   SELECT MOMAST.ORDNO, MOMAST.FITEM
   FROM AMFLIBT.MOMAST AS MOMAST
   WHERE MOMAST.FITEM LIKE 'POS-%'
   GROUP BY  MOMAST.ORDNO,MOMAST.FITEM
   ORDER BY MOMAST.FITEM,MOMAST.ORDNO

单击“确定”按钮创建视图时,出现以下错误:

SQL0199] 不需要关键字 ORDER。有效令牌: . 原因 。. . . . : 这里没有预期关键字 ORDER。在关键字 ORDER 处检测到语法错误。有效令牌的部分列表是 。

当我删除 ORDER BY 语句时,视图正在成功创建。

我需要使用 ORDER BY 语句创建我的视图,我怎样才能在没有错误的情况下完成这项任务?

4

1 回答 1

4

视图是关系表,关系模型将表定义为一组行。由于集合没有排序 - 根据定义 - 视图中的行也没有排序。因此,ORDER BY视图定义中的一个子句是没有意义的。SQL 标准 (SQL:2003) 不允许在ORDER BY语句中的子选择中使用子句CREATE VIEW,就像在语句中不允许使用子句一样CREATE TABLE

在您的情况下,我建议在没有ORDER BY语句的情况下创建视图,并在从视图中选择时(而不是在创建视图时)使用此语句。

于 2017-04-12T10:08:15.507 回答