“in”子句中包含太多参数的SQL查询错误

时间:2014-07-21 13:25:21

标签: sql sql-server

我在下面有以下查询:

Select t1.[Column1]
From [dbo].[Table1]
Where(
    t1.[Column2] = @parameter0
AND
    t1.[Column3] IN (@parameter1, @parameter2, @parameter3...............)

我的参数最多为@parameter1390

使用此SQL查询报告的C#应用​​程序

  

已达到表达式服务限制。请在查询中查找可能复杂的表达式,并尝试简化它们。

如何优化查询?

2 个答案:

答案 0 :(得分:0)

由于您可以使用临时表来保存您的值,您可以使用union运算符来达到目标​​。

答案 1 :(得分:0)

在代码中尝试这种外观修改

Select t1.[Column1]
From [dbo].[Table1]
Where(
    t1.[Column2] = @parameter0
AND
    t1.[Column3] IN 
(select a from (values(@parameter1), (@parameter2), (@parameter3),...) x(a))