'where clause' 中的未知列 'ROWNUM'

Unknown column 'ROWNUM' in 'where clause'

我阅读了很多有关此问题的主题,但其中大多数都遇到了一些复杂(至少对我而言)代码的问题; 我遵循了 oracle ROWNUM Pseudocolumn 指南,但是当我写

SELECT * FROM " + tableName + "
WHERE ROWNUM < 12;

我收到这个错误:

Unknown column 'ROWNUM' in 'where clause'

然后我尝试按照此处建议的解决方案进行操作 Select where row number = rownum 但没有任何变化。

我的代码如下所示:

sql = "SELECT C.* "
    + "FROM ( SELECT * "
    + "       FROM " + tableName + " ) C "
    + "WHERE C.ROWNUM < 12;";
resultSet = statement.executeQuery(sql);

试试这个对你的问题有帮助:

select * from (select * from " + tableName + ") "WHERE C.ROWNUM < 12;

使用下面的

sql = ""
    + "SELECT C.*,ROWNUM as RECNUM "
    + "FROM ( "
    + "     SELECT * "
    + "     FROM " + tableName + " ) C "
    + "WHERE C.RECNUM < 12;";

结果集 = statement.executeQuery(sql);

试试这个:[如果你使用 mysql]

sql = ""
        + "SELECT C.* "
        + "FROM ( "
        + "     SELECT * "
        + "     FROM " + tableName + " ) C "
        + "LIMIT 11;";
resultSet = statement.executeQuery(sql);

对于 sql 服务器:

SELECT TOP 12 ...

可以参考http://www.w3schools.com/sql/sql_top.asp.

ROWNUM用于Oracle。假设您使用的是 MySQL,因为您已将问题标记为 MySQL。

您可以将 ROWNUM 更改为 limit clause

SELECT * FROM " + tableName + "
LIMIT 11;