如何使用groovy获取无头sql查询的唯一值

如何使用groovy获取无头sql查询的唯一值,groovy,soapui,Groovy,Soapui,我尝试使用groovy脚本只获取DB值,但结果包括值和头 def res = con.rows("select fkuserid from tblUserCardDetail where cardValue='111633072'" ) log.info "The User ID from DB is :" + res 结果如下: 2016年4月25日星期一06:51:07 PDT:信息:数据库中的用户ID为:[[fkuserid:2951]] 我只需要值:2951当Groovy SQL返回结

我尝试使用groovy脚本只获取DB值,但结果包括值和头

def res = con.rows("select fkuserid from tblUserCardDetail where cardValue='111633072'" )
log.info "The User ID from DB is :" + res
结果如下: 2016年4月25日星期一06:51:07 PDT:信息:数据库中的用户ID为:[[fkuserid:2951]]


我只需要值:2951

当Groovy SQL返回结果时,它会将其作为类似于
映射的对象返回。由于您使用的是
rows()
,因此得到了
GroovyRowResult
s的列表

如果查询总是返回一条记录(或者根本不返回任何记录),则可以使用
firstRow()
而不是
rows()
。然后,您可以访问
fkuserid
属性/键以获取值:

def res = con.firstRow("select fkuserid from tblUserCardDetail where cardValue='111633072'" )
log.info "The User ID from DB is :" + res.fkuserid

还有一个查询:当我在查询中直接传递变量时,它抛出错误“nvarchar值'1005203406848'的转换溢出了一个int列”-----def sn=context.expand('${serialNumber\u Valid}')----def res=con.firstRow(“从tblUserCardDetail中选择fkuserid,其中cardValue=“+sn”)您的查询是什么?您可以在我的问题中看到,我传递了静态值,它获取数据,但我希望它是动态的。因此,我将该值存储在全局属性中,并使用它为查询提供输入。当我打印sn值时,我得到的结果与我作为静态传递的结果相同,但当我使用变量时,它会抛出错误。似乎在使用硬编码值的查询中,
cardValue
列应为varchar,而在使用变量的查询中,
cardValue
应为整数。由于硬编码查询可以工作,因此问题可能在于查询的格式。试试这个:
“从tblUserCardDetail中选择fkuserid,其中cardValue='$sn'
。太好了。谢谢。