I am using the System i Navigator in order to create a View. My view is very simple:
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
When clicking on OK button to creat the view, I am getting the following error:
SQL0199] Keyword ORDER not expected. Valid tokens: . Cause . . . . . : The keyword ORDER was not expected here. A syntax error was detected at keyword ORDER. The partial list of valid tokens is .
When I remove the ORDER BY statement, the view is being created successfully.
I need to create my view with the ORDER BY statement, how can I achieve this task with no errors?
A view is a relational table, and the relational model defines a table as a set of rows. Since sets are not ordered - by definition - the rows in a view are not ordered, either. Therefore, an ORDER BY
clause in the view definition is meaningless. The SQL standard (SQL:2003) does not allow an ORDER BY
clause in a subselect in a CREATE VIEW
statement, just as it is not allowed in a CREATE TABLE
statement.
In your case, I recommend creating the view without the ORDER BY
statement, and using this statement when selecting from the view (not while creating it).
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.