如何参数化包含IN具有可变数量参数的子句的查询,比如这个?
SELECT * FROM Tags
WHERE Name IN ('ruby','rails','scruffy','rubyonrails')
ORDER BY Count DESC
Run Code Online (Sandbox Code Playgroud)
在此查询中,参数的数量可以是1到5之间的任何值.
我不希望为此(或XML)使用专用存储过程,但如果有一些特定于SQL Server 2008的优雅方式,我对此持开放态度.
例如,我想创建以下查询:
SELECT c.* FROM Coffees c WHERE c.name IN ('robusta', 'arabica')
Run Code Online (Sandbox Code Playgroud)
我的尝试失败了:
val cnames = List("robusta", "arabica")
sql""" SELECT c.* FROM Coffees c WHERE c.name IN ${cnames} """
could not find implicit value for parameter pconv:
scala.slick.jdbc.SetParameter[List[String]]
Run Code Online (Sandbox Code Playgroud)
有可能以某种方式in在Slick普通的SQL查询中使用子句吗?