如何让SQL查询输出仅显示值,而非列名:值的格式?
解决Groovy SQL查询仅打印列值的问题
嘿,这个问题很好解决!你现在用"$row"打印的是整个row对象的字符串表示,它默认会输出“列名: 值”的格式。要只获取具体的列值,直接访问对应列的属性就可以了:
修改后的代码
sql.eachRow('select top 5 * from [MACHINES] WHERE Total != Right order by Time') { row -> logger.info row.Machinename }
或者如果你习惯用字符串索引的方式,也可以写成:
sql.eachRow('select top 5 * from [MACHINES] WHERE Total != Right order by Time') { row -> logger.info row['Machinename'] }
原理说明
当你用"$row"的时候,Groovy会调用row对象的toString()方法,这个方法会把所有列的键值对拼接成字符串输出。而直接访问row.Machinename(或row['Machinename'])会直接获取该列的原始值,打印出来就是你想要的A12这种纯值格式啦。
如果之后你需要打印所有列的值而不是单个列,可以遍历row的键值对,只输出值部分:
sql.eachRow('select top 5 * from [MACHINES] WHERE Total != Right order by Time') { row -> row.each { columnName, value -> logger.info value } }
内容的提问来源于stack exchange,提问作者user9630935
相关产品推荐
相关产品推荐

