为什么在 groovy 中执行 sql 查询时返回“[COUNT (*): 0]”而不是“0”?我该怎么做才能只返回一个数字?
def res = sql.firstRow("""SELECT count(*) FROM bd.pas WHERE INN = ?
AND SYSDATE >= RECDATEBEGIN AND SYSDATE < RECDATEEND AND NVL(DLL, 0) = 0
""",['test'])
println(res)
答案 0 :(得分:1)
在查询中使用别名:
def res = sql.firstRow("""SELECT count(*) as num FROM bd.pas WHERE INN = ?
AND SYSDATE >= RECDATEBEGIN AND SYSDATE < RECDATEEND AND NVL(DLL, 0) = 0
""",['test'])
然后读取特定字段:
println(res.num)
答案 1 :(得分:1)
firstRow()
返回一个 GroovyRowResult
,它本质上是一个 Map
。
这就是您得到 [COUNT (*): 0]
的原因。
要仅从中获取数字,您可以这样做:
def res = sql.firstRow("""SELECT count(*) FROM bd.pas ...""",['test']).values().first()