Sql Server 2005 navarchar 到 IN

Sql Server 2005 navarchar 到 IN

我的数据库表中有一个类似“1,3,5,6”的 nvarchar 值

但我想在 where 条件下使用它,例如 where event_id IN (1,3,5,6)

我如何实现这一点,如何转换它并在查询的 IN 中使用

答案1

这必须通过动态 SQL 来完成。类似这样。

DECLARE @val nvarchar(20), @sql nvarchar(100)

set @val = (select SomeColumn from SomeTable)

SET @sql = 'SELECT * FROM AnotherTable WHERE Column3 IN (' + @val + ')'

exec (@sql)

答案2

我可以找出并修复它,但不确定原因,但问题是

如果我写

设置@sql =

但当我改变时它的工作

EXEC ('从左外连接 b 中选择前 20 个 a.aa、a.bb、a.cc、a.dd、c.pp、a.ee,a.ff=b.ff,左外连接 c,a.gg=c.gg,其中 len(a.aa) > 0 并且 b.aa 在 ('+@val +') 和 a.xx=1')

谢谢

相关内容