Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
rodrigo_rocha
Creator
Creator

Retirar determinados Caracteres...

Olá Pessoal!!

Preciso ligar duas tabelas pelo código do funcionário, porém em uma tabela o registro se encontra diferente da outra. Por exemplo: Na tabela Funcionário o código é "2200", já na outra tabela ela possui o código "12200". E é exatamente esse numero "1" que preciso retirar. Mas temos um problema, pois os códigos dos funcionários tem um numero diferente de caracteres e por esse motivo não posso utilizar o comando Left, Right ou Mid. Ou seja um código pode ser "2200" e o outro pode ser '564" ou até "33548". O que eu preciso é retirar o primeiro numero "1" que aparece no registro da outra tabela. Não sei se eu consegui explicar bem....

Existe uma maneira de fazer isto?

Rodrigo Ramos Rocha

1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Rodrigo,

podes usar o MID()

Com o mid() voce define a posição inicial e caso seja OMITIDA o segundo parmetro, será pego todos os caracteres do campo após a posição inicial

Abaixo a ligação entre as tabelas acorre perfeitamente

Tabela1:

LOAD * INLINE [

CodEmp,Nome

200   ,João

220   ,José

3456  ,Manoel

123456,Maria

];


Tabela2:

LOAD

    mid(CodEmp,2)       as CodEmp,

    Salario   

INLINE [

CodEmp ,Salario

1200   ,2000

1220   ,2500

13456  ,3000

1123456,5000

];



CodEmp Nome Salario
200João2000
220José2500
3456Manoel3000
123456Maria5000

2018-06-09 10_38_36-F__tmp_Carga Codigo Func.qvw.png

furtado@farolbi.com.br

View solution in original post

9 Replies
Thiago_Justen_

Rodrigo,

Testa isso:

Num(Subfield(codigo,'1',1)&Subfield(codigo,'1',2))

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Rodrigo,

podes usar o MID()

Com o mid() voce define a posição inicial e caso seja OMITIDA o segundo parmetro, será pego todos os caracteres do campo após a posição inicial

Abaixo a ligação entre as tabelas acorre perfeitamente

Tabela1:

LOAD * INLINE [

CodEmp,Nome

200   ,João

220   ,José

3456  ,Manoel

123456,Maria

];


Tabela2:

LOAD

    mid(CodEmp,2)       as CodEmp,

    Salario   

INLINE [

CodEmp ,Salario

1200   ,2000

1220   ,2500

13456  ,3000

1123456,5000

];



CodEmp Nome Salario
200João2000
220José2500
3456Manoel3000
123456Maria5000

2018-06-09 10_38_36-F__tmp_Carga Codigo Func.qvw.png

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Thiago,

se tiver um código tipo

11213456

vai dar errado......

furtado@farolbi.com.br
Thiago_Justen_

afurtado‌, respondi pelo celular e sequer testei a expressão...de fato, não daria certo.

A tua solução com o Mid funciona perfeitamente...

Abs mestre!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Thiago_Justen_

Só uma dúvida acerca do que ele quer: será que o "primeiro número 1" pode ocorrer numa posição diferente de 1? Se sim, o Mid(campo,2) não servirá né.

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Thiago_Justen_

Rodrigo,

Se o que julgo ser seu requisito estiver correto (remover o primeiro número 1, independente de sua posição), gostaria de sugerir algo novo (que testei dessa vez, hehe):

Num(Left(CodEmp,Index(CodEmp,'1')-1)&Mid(CodEmp,Index(CodEmp,'1')+1))


Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

parti do pressuposto que o primeiro caractere é para ser retirado, independente do valor.

furtado@farolbi.com.br
rodrigo_rocha
Creator
Creator
Author

Valeu Alessandro!!

Deu certo aqui!!

Obrigado!!!

rodrigo_rocha
Creator
Creator
Author

Opa Thiago!!

A solução do Alessandro funcionou aqui.

Como sempre, valeu mesmo a ajuda!!