【问题标题】:How to use the SQL RANDOM() function in a Netbeans JavaDB如何在 Netbeans JavaDB 中使用 SQL RANDOM() 函数
【发布时间】:2013-04-09 23:12:56
【问题描述】:

我需要在 Netbeans 7.2 的小型本地 JavaDB 中执行 SQL 调用,以从数据库中提取单个随机行。

SELECT * FROM JAVA2.FORTUNES ORDER BY RANDOM()

到目前为止,我已经使用 RANDOM() 函数让它工作,但我无法让 LIMIT 1 工作,它返回一个语法错误。

我知道每个数据库都有不同的方法来执行此操作,但我无法弄清楚它是如何专门针对 Netbeans 中的这个 JavaDB 工作的(我让它在具有不同语法的单独 Oracle DB 中工作)。

是否有特定于 Java DB 或 ANSII 标准的方式来使用上述语法返回单行?

【问题讨论】:

    标签: java sql netbeans-7 javadb


    【解决方案1】:

    Java DB 使用 SQL 的 OFFSET/FETCH 语法来获得此功能。

    假设 RANDOM() 对它们进行正确排序,以下语法应该可以工作:

    SELECT * FROM JAVA2.FORTUNES ORDER BY RANDOM() OFFSET 0 ROWS FETCH NEXT 1 ROW ONLY
    

    【讨论】:

      【解决方案2】:

      来自http://db.apache.org/derby/faq.html#limit

      Derby 不支持 LIMIT 语法。但是,Derby 10.4 添加了 ROW_NUMBER 函数和 Derby 10.7 添加了 OFFSET 和 FETCH 子句。

      Derby 还支持限制查询返回的行数 通过 JDBC。例如,要获取大表的前 5 行:

      Statement stmt = con.createStatement();  
      stmt.setMaxRows(5); 
      ResultSet rs = stmt.executeQuery("SELECT * FROM myLargeTable");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-27
        • 1970-01-01
        • 2012-07-09
        • 2021-02-06
        • 2013-05-11
        • 2020-08-10
        • 2015-09-19
        • 1970-01-01
        相关资源
        最近更新 更多