Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
maiconmello
Creator III
Creator III

Dúvidas Campo String

Boa tarde, estou com dúvidas em um campo string.

Existe uma tabela em meu banco e tenho um campo String :

Ao ler esse campo no Qlik ele mostra assim :

1561 FLEISCHMANN

12032 FISCHER

13568 MADEVALI

30540,30194 LAMINADOS AB

114,171 WOODEX

114,176 WOODEX

Preciso Deixar dessa forma

1561 FLEISCHMANN

12032 FISCHER

13568 MADEVALI

30540 LAMINADOS AB

30194 LAMINADOS AB

114 WOODEX

171 WOODEX

114 WOODEX

176 WOODEX

Atenciosamente

Maicon Mello

1 Solution

Accepted Solutions
fonmarcelo
Contributor III
Contributor III

Olá Maicon!

Acho que isso pode ajudar:

Base:

LOAD * Inline [

  MyColumn

  "1561 FLEISCHMANN"

  "12032 FISCHER"

  "13568 MADEVALI"

  "30540,30194 LAMINADOS AB"

  "114,171 WOODEX"

  "114,176 WOODEX"

];

Temp:

// apenas campos com a vírgula

LOAD

  MyColumn,

  Trim(PurgeChar(MyColumn,'0123456789,')) as Nome,

  Trim(PurgeChar(MyColumn,'ABCDEFGHIJKLMNOPQRSTUVXWYZ')) as Id

Resident Base

  Where WildMatch(MyColumn,'*,*')>0;

Concatenate

// apenas campos sem a vírgula

LOAD

  MyColumn,

  Trim(PurgeChar(MyColumn,'0123456789,')) as Nome,

  Trim(PurgeChar(MyColumn,'ABCDEFGHIJKLMNOPQRSTUVXWYZ')) as Id

Resident Base

  Where WildMatch(MyColumn,'*,*')=0;

Final:

LOAD

  MyColumn,

  Id,

  Nome,

  IterNo() as Posicao,

  SubField(Id,',',IterNo()) as Codigo

Resident Temp

  While not IsNull(SubField(Id,',',IterNo()));

DROP Tables Temp,Base;

Sem título.png

View solution in original post

2 Replies
fonmarcelo
Contributor III
Contributor III

Olá Maicon!

Acho que isso pode ajudar:

Base:

LOAD * Inline [

  MyColumn

  "1561 FLEISCHMANN"

  "12032 FISCHER"

  "13568 MADEVALI"

  "30540,30194 LAMINADOS AB"

  "114,171 WOODEX"

  "114,176 WOODEX"

];

Temp:

// apenas campos com a vírgula

LOAD

  MyColumn,

  Trim(PurgeChar(MyColumn,'0123456789,')) as Nome,

  Trim(PurgeChar(MyColumn,'ABCDEFGHIJKLMNOPQRSTUVXWYZ')) as Id

Resident Base

  Where WildMatch(MyColumn,'*,*')>0;

Concatenate

// apenas campos sem a vírgula

LOAD

  MyColumn,

  Trim(PurgeChar(MyColumn,'0123456789,')) as Nome,

  Trim(PurgeChar(MyColumn,'ABCDEFGHIJKLMNOPQRSTUVXWYZ')) as Id

Resident Base

  Where WildMatch(MyColumn,'*,*')=0;

Final:

LOAD

  MyColumn,

  Id,

  Nome,

  IterNo() as Posicao,

  SubField(Id,',',IterNo()) as Codigo

Resident Temp

  While not IsNull(SubField(Id,',',IterNo()));

DROP Tables Temp,Base;

Sem título.png

maiconmello
Creator III
Creator III
Author

@Marcelo Fonseca muito obrigado , isso mesmo.

Abraço