Pergunta
Select a, b, c from table where a in (1, 2, 3)
E se a lista está em uma coluna?
Eu tento isto irá erro:
Select a, b, c from a in b
Desculpe por não limpar a minha pergunta.
Não é sobre join ou em (b selecione da tabela)
Coluna b tipo é nvarchar, os dados são uma lista, como esta '1,2,5'
Coluna um tipo é int.
Nenhuma solução correta
Outras dicas
Depois de ler sua pergunta, isso é o que você quer:
SELECT
a,b,c
FROM
tblA
WHERE
b LIKE CAST(a as nvarchar) + ',%'
OR b LIKE '%,' + CAST(a as nvarchar) + ',%'
OR b LIKE '%,' + CAST(a as nvarchar)
Isso deve fazê-lo.
Muitas respostas apontando na direção certa, mas acho que este vai realmente trabalho:
SELECT a, b, c
FROM table
WHERE ',' + b + ',' LIKE '%,' + CAST(a as varchar) + ',%'
Você pode acelerar este processo através da aplicação começa B e termina com uma vírgula. Ou melhor ainda, normalizar o banco de dados e mover a coluna B para sua própria tabela com uma relação de um-para-muitos.
Em SQL, a coluna é normalmente de um dos chamados "escalar" tipos de dados: número, data / hora, cordas - ver, por exemplo, MSDN . Se você explicar melhor em que sentido você tem "uma lista" em b
coluna, e como, por exemplo, mostra-nos o comunicado CREATE TABLE a
, talvez possamos ajudá-lo melhor!
precisa de SQL Query Ajuda, combinando um parâmetro lista procedimento armazenado contra colunas individuais . Ele mostra como escrever um UDF que terá o seu coluna "lista" e retornar uma tabela que você pode usar para se juntar contra o que você está selecionando.
Eu acho que você quer se juntar as tabelas?
SELECT a, b, c
FROM a
JOIN b ON a.ID=b.ID