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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top