Isso deve ser feito via SQL dinâmico. Algo parecido com isto.
DECLARE @val nvarchar(20), @sql nvarchar(100)
set @val = (select SomeColumn from SomeTable)
SET @sql = 'SELECT * FROM AnotherTable WHERE Column3 IN (' + @val + ')'
exec (@sql)
Eu tenho um valor nvarchar algo como '1,3,5,6', na minha tabela de banco de dados
Mas eu quero usar isso em uma condição onde, algo assim onde event_id IN (1,3,5,6)
Como faço para isso? Como posso convertê-lo e usar no IN de uma consulta
Isso deve ser feito via SQL dinâmico. Algo parecido com isto.
DECLARE @val nvarchar(20), @sql nvarchar(100)
set @val = (select SomeColumn from SomeTable)
SET @sql = 'SELECT * FROM AnotherTable WHERE Column3 IN (' + @val + ')'
exec (@sql)
Eu sou capaz de descobrir e consertar não tenho certeza porque, mas a questão é
A consulta não está em execução se eu escrever
SET @sql =
mas está funcionando quando mudo para
EXEC ('SELECIONAR TOP 20 a.aa, a.bb, a.cc, a.dd, c.pp, a.ee A PARTIR DE UMA JUNTA EXTERNA ESQUERDA b ON a.ff = b.ff LEFT OUTER JOIN c ON a.gg = c.gg ONDE len (a.aa) > 0 E b.aa IN ('+ @ val +') E a.xx = 1 ')
Obrigado
Tags sql-server