我的SQL查询,其整数值为一个参数。
工作:
sqlContext.sql("select concat(MinRange, '-', MaxRange) from range where 20 >= MinRange and 20 < MaxRange")
无法正常工作:
sqlContext.sql("select concat(MinRange, '-', MaxRange) from range where "+intval+">= MinRange and "+intval+" < MaxRange")
也有字符串Interpolator,不起作用:
sqlContext.sql(s"select concat(MinRange, '-', MaxRange) from range where $intval >= MinRange and $intval < MaxRange")
我敢肯定,我缺少一些非常基本的东西。
首先构造查询字符串然后执行它将工作。
val intval=10
val qry= "select concat(MinRange, '-', MaxRange) from range where "+intval+">= MinRange and "+intval+" < MaxRange"
sqlContext.sql(qry)
您是否在下面进行了检查:
1)因为U r构建了&lt;列名&gt;运行时间,可以检查&lt; lt; column name&gt;实际存在于"范围"表中。
2)您是否检查了运行时 Intval 变量的实际值是什么?通过给出默认值,请确保它没有获得零值。