Existe alguma forma de aplicar um LEFT JOIN condicional?
Por exemplo
Tabela A
CODIGO | DESCRIÇÃO
00001 | Andre
00002 | Pedro
00003 | Marco
00004 | Antonio
Tabela B
CODIGO | DESCRIÇÃO
00001 | Maria
00002 | Manu TODOS | Fabiana TODOS | Isadora
00007 | Pietra
00008 | Denise
E aplicar um Left Join entre o campo Código da Tabela A e Tabela B
e que retorne registros com o código 00001, 00002, TODOS, TODOS… em resumo quero utilizar um left join para poder pegar registros que façam relacionamento entre as duas tabelas e registros específicos da tabela B que não possuem relacionamento com a tabela A, entretanto, somente 2 registros, os registros da Tabela B 00007 e 00008 eu não quero
Para que o resultado final seja assim:
Eu tentei dessa forma, porém assim infelizmente não me atende, meu cenário é um pouco mais complexo, eu coloquei so um exemplo de como ele é, só que dessa forma todos os registros de B se relacionam com o de A
Exemplo
CODIGO | DESCRIÇÃO
TODOS | Andre
TODOS | Pedro
TODOS | Marco
TODOS | Antonio
00001 | Andre
00002 | Antonio
SELECT CODIGO, DESCRICAO
FROM
TABELA_A A WITH(NOLOCK)
LEFT JOIN TABELA_B BWITH(NOLOCK) ON (A.CODIGO = B.CODIGO)
WHERE
A.CODIGO = 'TODOS'
OR A.CODIGO IN (
SELECT B.CODIGO
FROM TABELA_B
)
SELECT
CODIGO, DESCRICAO
FROM
TABELA_A A
WHERE
A.CODIGO = 'TODOS'
UNION
SELECT
CODIGO, DESCRICAO
FROM
TABELA_A A, TABELA_B B
WHERE
A.CODIGO = B.CODIGO;