Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, estou querendo tratar um numeros de celulares, antes na hora de gerar o script.
O exemplo estão abaixo.
Alguma dica?
Numero_Banco | Numero_Tratado |
27-9818-8923 | 27998188923 |
27-98106-2021 | 27981062021 |
3345-0723 | Não Celular |
9951-7406 | 27999517406 |
Tratar assim,
Pegar todos os sem traços
Exemplo: 27-9818-8923 - deixar apenas o ultimos 7 digitos. (sem traços)
resultado: 8188923
Depois inserir :279
ResultadoFinal: 2798188923
Teste este script e veja se te atende:
Temp:
load * Inline [
Numero
27-9818-8923
27-98106-2021
3345-0723
9951-7406
98101-0634
];
Final:
load
Numero,
If(Left(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),1)<>9,'Não Celular',
If(Len(Trim(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-'))))<9,'279'&
If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),'27'&
If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')))) as Celular
Resident Temp;
drop table Temp;
Resultado:
Teste este script e veja se te atende:
Temp:
load * Inline [
Numero
27-9818-8923
27-98106-2021
3345-0723
9951-7406
98101-0634
];
Final:
load
Numero,
If(Left(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),1)<>9,'Não Celular',
If(Len(Trim(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-'))))<9,'279'&
If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),'27'&
If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')))) as Celular
Resident Temp;
drop table Temp;
Resultado:
Show Thiago
#TMJ Agnaldo
Thiago a solução está correta.
ele deveria retirar os 7 digitos depois acrescentar.
Mas caso o funcionário erre eu gostaria também de acertar veja na imagem abaixo.
o usuario digitou um 9 a mais.
Adicionei um Right() pra pegar apenas 9 dígitos e assim tratar essa possibilidade.
If(Left(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),1)<>9,'Não Celular',
If(Len(Trim(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-'))))<9,'279'&
If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),'27'&
Right(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),9))) as Celular