SQL Server 2005 navarchar到IN

我在我的数据库表中有一个像'1,3,5,6'的nvarchar值

但是我想在where条件中使用这个,event_id IN(1,3,5,6)

我如何做到这一点,我怎样才能转换它,并在查询的IN中使用

这必须通过dynamicSQL来完成。 像这样的东西。

DECLARE @val nvarchar(20), @sql nvarchar(100) set @val = (select SomeColumn from SomeTable) SET @sql = 'SELECT * FROM AnotherTable WHERE Column3 IN (' + @val + ')' exec (@sql) 

我能够找出并解决它不知道为什么,但问题是

如果我写,查询不会执行

SET @sql =

但是当我改变时它的工作

EXEC('selectTOP 20 a.aa,a.bb,a.cc,a.dd,c.pp,a.ee从左边的外部连接b在a.ff = b.ff左边的外部连接c ON a。 gg = c.gg WHERE len(a.aa)> 0 AND b.aa IN('+ @ val +')AND a.xx = 1')

谢谢