Sql Server 2005 navarchar para IN

1

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

    
por Tripz 18.04.2012 / 01:06

2 respostas

1

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)
    
por 18.04.2012 / 02:18
0

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

    
por 18.04.2012 / 16:28

Tags