如何使用SSIS变量用IN子句构造SQL语句

时间:2014-05-22 20:40:56

标签: variables ssis sqlcommand

我想知道有人可以帮助我。我想构建一个像这样的动态sql命令

SELECT * from Table1 Where CID > 10 + and LID in (11,12,15,20)

为此我设置了两个var并设置如下面的表达式

"SELECT * from Table1 Where CID >" + (@User:Var1) + "and LID in "+(@User:Var2)

var1是从单行sql任务结果集生成的Int64类型,它工作正常,而Var2是一个Object类型,我在上面的语句中取代“和Lid(11, 12,15,20)”。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我不确定这是否是您正在寻找的,我使用AdventureWorks中的一个表作为示例。

Declare @var1 int = 10
Declare @var2 varchar(100) = '(11,12,15,20)'

Declare @sql varchar(max) 
=   'SELECT * FROM  [dbo].[DimEmployee] WHERE EmployeeKey > ' + 
    CAST(@var1 as varchar(10)) + ' AND ParentEmployeeKey IN ' +
    @var2

Exec(@sql)

如果没用,请忽略。