DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!

Utilizando Comando Substring para Relacionar tabelas

Neste Artigo estarei mostrando um exemplo de como relacionar tabelas utilizando campos que não são exatamente iguais , ou seja, que somente apresentam alguma parte de seu conteudo igual ao campo relacionado.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

 

            Ola Pessoal, neste artigo estarei exemplificando uma maneira de relacionar partes de campos para montar  relacionamentos entre Tabelas.

             Vamos imaginar o seguinte cenário, temos uma tabela de produtos, onde cada produto tem um código numérico do tipo com a mascara 1.01.02.1234 aonde:

 

#. - Tipo de Produto

##. - Classificação do Produto

###. - Cor do Produto

#### - Embalagem do Produto

 

             Ainda neste cenário, temos outras 4 tabelas, TipoProduto,Classificacao, CorProduto Embalagem aonde são cadastrados os dados necessários para se montar um Produto na Tabela Produtos.

             Imagine agora que você necessite de fazer uma consulta relacionando os Produtos da tabela Produtos com a Embalagem que ele é vendido, mas essa informação esta na tabela de Embalagens, conseqüentemente você terá que relacionar uma parte do código do produto que corresponde a embalagem com a o código da embalagem correspondente na Tabela Embalagem.

 

          Nesta situação, o que fazer????

 

         Primeiramente despedir o programador que poderia ter criado um campo para destacar a embalagem usada dentro do próprio produto. Mas outra opção é utilizar o comando substring. Este comando retorna parte de uma expressão de caractere, binária, de texto ou de imagem, então você a usará para relacionar à parte do código do produto correspondente a embalagem com o código da embalagem da Tabela Embalagem.

 

Ex:     SELECT P.DESCRICAOPRODUTO, E.DESCRICAOEMBALAGEM, E.PESOEMBALAGEM FROM

          PRODUTOS P, EMBALAGEM E

              WHERE E.CODIGOEMBALAGEM = SUBSTRING (P.CODIGOPRODUTO,9,12) 
              AND P.CODIGO PRODUTO ='1.01.02.1234'

 

      Neste Exemplo estou relacionando o código formado do nono caractere ate o décimo segundo formando o código 1234 que corresponde ao código da embalagem X cadastrada na Tabela Embalagem, desta forma conseguiremos  relacionar as duas tabelas tranquilamente.

 

Por enquanto é pessoal, ate breve

 


Heittor R. De Souza
O que você achou deste post?

    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Fabio Colli
     Este tipo de abordagem é muito perigoso, pois os relacionamentos devem ser feitos por um identificador único e não por composições de informaçào. Esse técnicas já são arquáicas, sem dizer que se você executar um script desses, com funções nos filtros de uma cláusula DML numa quantidade considerável, que é o caso de produtos e embalagens ficará com a performance comprometida.
    Execute um plano de execução do script para saber o custo da execução.
    Claro que a função SUBSTRING é útil em vários casos, mas colocar função em filtros pode trazer consequências graves na perfomance.
Atenciosamente!
[há +1 ano] - Responder

 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
[Fechar] Você precisa estar logado para dar seu feedback.

Clique aqui para efetuar o login

Caso não tenha um cadastro DevMedia, clique aqui para se cadastrar (gratuito)
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03