Usuário com melhor resposta
Ocultar 2 ultimos caracteres de um campo com quantidade variavel de caracteres!

Pergunta
-
Pessoal estou tentando ocultar os 2 ultimos caracteres de um campo que traz 3 ou 4 digitos, tentei via SUBSTRING e LEFT mas não obtive sucesso!
Tenho um campo em uma tabela onde tenho so códigos de depto ex:
COD Depto
2740 Itapecerica da Serra
941 Campo de Fora
5440 Valo VelhoPreciso colocar estes codigos no padrão que é valor inicial + 01 ou seja 2740 tiro p 40 e fica 2701 e o 941 tiro o 41 e fica 901.
Como tenho um campo com 3 e 4 digitos, preciso elimar somente os 2 ultimos e acescentar o 01.
Alguém tem uma idéia melhor?
Att.
Moizés Cerqueira | MCP / MCTS SQL SERVER
Respostas
-
Bom dia,
Experimente utilizar a função Len para obter a quantidade de caracteres da coluna. Ex:
LEFT(Coluna, LEN(Coluna) - 2) + '01'
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Moizés Cerqueira segunda-feira, 23 de janeiro de 2017 14:11
-
Pessoal cheguei resultado usando o case não sei se seria a melhor opção mas me atendeu:
CASE WHEN LEN(Cod_Depto) = 4 THEN LEFT( Cod_Depto, 2) ELSE LEFT( Cod_Depto,1) END + '01' AS Cod_Escola
Como neste caso tem 3 ou 4 caracters me atendeu.
5741 Ensino Fundamental 1º ao 5º - Vila das Belezas 187 5701
5140 Educação Infantil - Taboão da Serra 187 5101
1841 Ensino Fundamental 1º ao 5º - Capão Redondo 187 1801
941 Ensino Fundamental 1º ao 5º - Campo de Fora 187 901
Moizés Cerqueira | MCP / MCTS SQL SERVER
- Marcado como Resposta Moizés Cerqueira segunda-feira, 23 de janeiro de 2017 14:07
Todas as Respostas
-
Bom dia,
Experimente utilizar a função Len para obter a quantidade de caracteres da coluna. Ex:
LEFT(Coluna, LEN(Coluna) - 2) + '01'
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Moizés Cerqueira segunda-feira, 23 de janeiro de 2017 14:11
-
Bom dia, Moizés!
Seria isso?
Create Table #Aux ( Cod Int ,Depto VarChar(200) ) Insert Into #Aux Values (2740, 'Itapecerica da Serra') ,(941, 'Campo de Fora') ,(5440, 'Valo Velho') Select Concat(Left(Cod, Len(Cod) - 2), '01') ,* From #Aux
-
Pessoal cheguei resultado usando o case não sei se seria a melhor opção mas me atendeu:
CASE WHEN LEN(Cod_Depto) = 4 THEN LEFT( Cod_Depto, 2) ELSE LEFT( Cod_Depto,1) END + '01' AS Cod_Escola
Como neste caso tem 3 ou 4 caracters me atendeu.
5741 Ensino Fundamental 1º ao 5º - Vila das Belezas 187 5701
5140 Educação Infantil - Taboão da Serra 187 5101
1841 Ensino Fundamental 1º ao 5º - Capão Redondo 187 1801
941 Ensino Fundamental 1º ao 5º - Campo de Fora 187 901
Moizés Cerqueira | MCP / MCTS SQL SERVER
- Marcado como Resposta Moizés Cerqueira segunda-feira, 23 de janeiro de 2017 14:07
-
Bom dia,
Experimente utilizar a função Len para obter a quantidade de caracteres da coluna. Ex:
LEFT(Coluna, LEN(Coluna) - 2) + '01'
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
Moizés Cerqueira | MCP / MCTS SQL SERVER
-
Moizés,
Se você estiver utilizando o SQL Server a partir da versão 2012 troque o comando CASE pela função IIF.
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-