Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida no SELECT Com retorno de String


Ithalo

Pergunta

Bom dia pessoal,

estou comecando a entender um pouco as funcoes do SQL, e me deparei com a seguinte situação:

Tenho uma Tabela no banco de dados chamada ROTA, nesta tabela possuo o codigo da rota, e a rota a ser feita, neste campo(Descricao) eu tenho codigos de bairros.

Exemplo

Select * from Rota

Codigo Descricao

1 10, 20,30,40

2 10,15, 25 ,5

Tenho outra tabela que é a de bairro:

Exemplo:

Select * from Bairro

Codigo Descricao

10 Centro

20 Planalto

30 Porto Velho

Eu preciso fazer um select onde retorne na descricao da Rota o nome do bairro, existe alguma possibilidade?

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Ithalo,

No seu exemplo ficou faltando alguns dados, mas dá para fazer um join entre as tabelas para recuperar o que deseja. Ex.:

SELECT r.descricao, b.decricao FROM Rota r, Bairro b WHERE r.CHAVE=b.CHAVE AND....

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Fulvio, muito obrigado pela dica

mais acontece o seguinte.

no campo descricao da rota onde tenho codigos de vários bairros

por exemplo

Rota 1:

Codigo

01

Descricao:

10, 20, 30,40 ( onde 10 = centro, 20 = planalto, 30 = porto velho, 40 = são luiz)

Se eu der um select nessa tabela o resultado será:

SELECT * FROM Rota

CODIGO DESCRICAO

01 10,20,30,40 (Cada numero antes da virgula, se refere há um bairro cadastrado na tabela de bairro)

o que eu preciso é buscar na tabela de bairro a descricao de cada codigo

eu fiz a seguinte sentença e não saiu nada

SELECT r.Bairro

, b.Descricao

FROM Rota r

, Bairro b

WHERE r.Codigo = b.Id_Bairro

obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde Italo

Simulei o seu banco e conseguir o resultado com a seguinte consulta

SELECT

BAIRRO.CODIGO,

BAIRRO.DESCRICAO

FROM

BAIRRO INNER JOIN (SELECT CONVERT(INT, CONVERT(VARCHAR(02),(SUBSTRING(DESCRICAO,4,5)))) AS DESCR, CODIGO FROM ROTA)RT ON

BAIRRO.CODIGO = RT.DESCR

WHERE

RT.CODIGO = 01

Observe que é utilizado o a variavel SUBSTRING a composição da mesma é SUBSTRING ( campo , posiçãoinicial , posiçãofinal) para você pegar toda as descrição da sua tabela o ideal é que ser faça um curso que leia as rotas ou então simplificando as coisas (porem com um gasto maior de perfomace do seu banco faça um while com o tamanho do campo varchar dando dos devidos espaços)

Espero poder ter ajudado B)

Link para o comentário
Compartilhar em outros sites

  • 0

O campo Descricao da tabela Rota (igual ao exemplo que deu: 10,20,30,40) provavelmente possui um crescimento dinâmico, quer dizer, cada Codigo possui uma quantidade específica de bairros... neste caso terá que fazer um loop para identificar cada bairro. Neste loop terá que utilizar o marcador vírgula para identificar o novo bairro. Este seria o correto.

Mas pode-se fazer uma adaptação... rs...

Crie um script dinâmico e mande executar. Segue abaixo um exemplo. Se não enteder, pode entrar em contato. Faça as suas adaptações...

DECLARE @Sql VARCHAR(200)

SET @Sql = 'SELECT * FROM bairro WHERE codigo IN ('

SET @Sql = @Sql + (SELECT descricao FROM Rota WHERE codigo=1) + ')'

Print @Sql -- esse é pra ver como vai ficar o script
Exec (@Sql)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...