Groovy Sql从列中获取最大值

C0d*_*ack 3 sql groovy

我有以下Groovy代码从'topic'表中的'id'列返回最大值:

 def rs = sql.executeQuery("select max(id) from topic")

 def maxId = rs.getLong(1)
Run Code Online (Sandbox Code Playgroud)

它不起作用,我收到以下错误:

java.sql.SQLException:oracle.jdbc.driver上的oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)处的oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147)中的列索引无效. DatabaseError.throwSqlException(DatabaseError.java:209)...

有谁知道正确的代码是什么?谢谢.

Ben*_*hko 6

我认为如果你使用这种方法会更容易firstRow.您可以通过名称或索引从结果对象中获取值.

按名字:

def row = sql.firstRow("select max(id) as max from topic")
def maxId = row.max
Run Code Online (Sandbox Code Playgroud)

按索引:

def row = sql.firstRow("select max(id) from topic")
def maxId = row[0]
Run Code Online (Sandbox Code Playgroud)