2013-04-09 38 views
2

我需要在Netbeans 7.2中的小型本地JavaDB中執行SQL調用,以從數據庫中提取一個隨機行。如何在Netbeans JavaDB中使用SQL RANDOM()函數

SELECT * FROM JAVA2.FORTUNES ORDER BY RANDOM() 

到目前爲止,我已經得到它使用RANDOM()函數的工作,但我遇到了麻煩LIMIT 1工作,它返回一個語法錯誤。我知道每個數據庫都有不同的方式來做到這一點,我不知道它是如何專門爲Netbeans中的JavaDB工作的(我使用不同的語法在單獨的Oracle數據庫中工作)。

是否有Java DB特定的或ANSII標準的方式來使用上述語法返回單個行?

回答

3

Java DB使用SQL的OFFSET/FETCH語法來獲得此功能。

假設隨機的()預定他們正確的語法如下應該工作:

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

這是它,謝謝! – phamousphil 2013-04-10 00:09:57

0

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

德比不支持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");