我有一个sql语句,它应该选择按行号排序的表的所有内容。所以我使用了 row_number 函数。
但是我每次都会遇到错误
Exception in thread "main" java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected
或者这个错误
ORA-00936: missing expression
我的陈述如下:
SELECT row_number() OVER(ORDER BY table.column1) AS row, table.*
FROM table
WHERE column2= ("Any String")
ORDER BY row;
我希望你能帮我解决这个代码。
那是哪个 DBMS? 为什么不去掉括号并像这样使用:
SELECT row_number() OVER(ORDER BY table.column1) AS row, table.*
FROM table
WHERE column2 = 'Any String'
ORDER BY row;
我不是专家,但也许你必须选择与他们一起工作的列,尝试像这样的syh:
SELECT name_column1, name_column2, ROW_NUMBER()
OVER( ORDER BY name_column1) AS THE_NAME_THAT_YOU_WANT
FROM NAME_OF_TABLE
WHERE name_column2 ="any_string";
查看错误的根源:
ORA-00923 源于 SELECT 语句中最终选定项或 REVOKE 语句中的权限后面需要关键字 FROM。当抛出 ORA-00923 时,这是因为 SELECT 或 REVOKE 语句在关键字 FROM 中具有以下有问题的语法之一:
解决 ORA-00923 时有很多值得关注的领域:
您应该适当地更正语法,在必要时插入关键字 FROM。 请记住,SELECT 列表本身可能有错误,这也可能导致出现 ORA-00923。 更正 ORA-00923 时还应评估引号,因为它们应将别名括起来(如果在别名中使用)。 另外,查明您是否使用保留字作为别名。