Boas práticas com T-SQL – Caracteres a Esquerda/Direita

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (2)  (0)

Este artigo mostra boas práticas de como adicionar caracteres a esquerda / direita de um campo a fim de seguir um determinado padrão ou suprir alguma necessidade específica.

Ao longo do tempo vamos nos deparando com situações onde precisamos de um “remendo” ou um “jeitinho” para resolver determinada situação ou aplicar uma nova regra para suprir uma necessidade específica. Neste primeiro artigo vou mostrar uma boa prática para incluir caracteres à esquerda /direita de um campo.

Criando a Estrutura de Dados

Vamos criar a tabela abaixo com a seguinte estrutura:

create table tb_clientes

(

codcliente int not null,

fantasia char(255),

)

alter table tb_clientes add primary key (codcliente)

Em seguida vamos popular a mesma com os comandos abaixo:

insert into tb_clientes values(1,'Casa de Pastel do Jose')

insert into tb_clientes values(100,'Funilaria do Ronaldo')

insert into tb_clientes values(1000,'Mecanica do Joao')

Replicando caracteres à esquerda/direita de um campo

Baseado na estrutura da tabela tb_clientes digamos que em uma determinada situação eu queira trazer no resultado da consulta o campo codcliente com zeros à esquerda.

select codcliente as valor_original, replicate('0', 6 - len(convert(char,codcliente))) + convert(char,codcliente) as valor_alterado from tb_clientes

Observe que para isso usamos a função replicate onde passamos dois parâmetros sendo o primeiro o caracter a ser replicado, que no nosso caso é o 0 e o segundo parâmetro é a quantidade de vezes que este sera replicado. Como este segundo parâmetro é dinâmico, ou seja, pode variar de acordo com o tamanho do campo fazemos a seguinte jogada.

Definimos o segundo parâmetro com o tamanho total (em caracteres)  da coluna, onde no exemplo é 6, e subtraímos este total pelo tamanho do campo a ser replicado, no exemplo acima é codcliente,  com isso teremos a quantia de vezes que o 0 será replicado para o campo codcliente.  Para finalizar concatenamos o resultado da função replicate com o campo usado na replicação codcliente.

Para incrementar o caracter 0 à direita apenas invertemos os campos na concatenação não nos esquecendo de utilizar a função ltrim e rtrim para retirar os caracteres em branco.

select codcliente as valor_original, rtrim(convert(char,codcliente)) + ltrim(replicate('0', 6 - len(convert(char,codcliente)))) as valor_alterado from tb_clientes

 
Abraços e até a próxima!!!

 

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?