Ir para conteúdo principal

SubField – função de script e gráfico

Subfield() é usado para extrair componentes de substring a partir de um campo primário de string, em que os campos de registro originais consistem em duas ou mais partes separadas por um separador.

A função Subfield() pode ser usada, por exemplo, para extrair o primeiro nome e sobrenome de uma lista de registros que consiste em nomes completos, partes do componente de um nome de caminho ou para extrair dados de tabelas separadas por vírgulas.

Se você usar a função Subfield() em um comando de LOAD com o parâmetro field_no opcional deixado de lado, um registro completo será gerado para cada substring. Se vários campos forem carregados usando Subfield(), os produtos cartesianos de todas as combinações serão criados.

Sintaxe:  

SubField(text, delimiter[, field_no ])

Tipo de dados de retorno: caractere

Argumentos:  

Argumentos SubField
Argumento Descrição
text A string original. Isso pode ser um texto codificado, uma variável, uma expansão de sinal de dólar ou outra expressão.
delimiter Um caractere dentro do text de entrada que divide a string em partes de componente.
field_no

O terceiro argumento opcional é um inteiro que especifica qual substring do text da string primária será retornado.

  • Se field_no for um valor positivo, as substrings serão extraídas da esquerda para a direita.
  • Se field_no for um valor negativo, as substrings serão extraídas da direita para a esquerda.
Nota de dica SubField() pode ser usado em vez de combinações complexas de funções, tais como Len(), Right(), Left(), Mid() e outras funções de caracteres.

Exemplos e resultados:  

Exemplos 1-3
Exemplo Resultado
SubField('abc;cde;efg', ';', 2) Retorna 'cde'
SubField('', ';', 1) Retorna NULL
SubField(';', ';', 1) Retorna um caractere vazio

Adicione o script de exemplo ao seu documento e execute-o. Em seguida, adicione pelo menos os campos listados na coluna de resultados a um documento para ver o resultado.

FullName:

LOAD * inline [

Name

'Dave Owen'

'Joe Tem'

];

 

SepNames:

Load Name,

SubField(Name, ' ',1) as FirstName,

SubField(Name, ' ',-1) as Surname

Resident FullName;

Drop Table FullName;

Exemplo 4
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

Imagine que você tenha uma variável com o nome de caminho vMyPath,

Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;.

Em um gráfico de texto e imagem, é possível adicionar uma medida como:
SubField(vMyPath, '\',-3), que resulta em 'Qlik', porque é a terceira substring a contar da extremidade direita da variável vMyPath.

Este exemplo mostra como várias linhas são criadas a partir de uma única instância de Subfield().

Adicione o script de exemplo ao seu documento e execute-o. Em seguida, adicione pelo menos os campos listados na coluna de resultados a um documento para ver o resultado.

LOAD DISTINCT

Player,

SubField(Project,',') as Project;

 

Load * inline [

Player|Project

Neil|Music,OST

Jo|Music

Mike|Music,OST,Video

] (delimiter is '|');

Exemplo 5
Player Project
Neil Music
Neil OST
Jo Music
Mike Music
Mike OST
Mike Video

Esse exemplo mostra como usar várias instâncias da função Subfield(), cada uma com o parâmetro field_no deixado de fora, a partir da mesma instrução de LOAD, cria produtos Cartesianos de todas as combinações. A opção DISTINCT é usada para evitar a criação de registros duplicados.

Adicione o script de exemplo ao seu documento e execute-o. Em seguida, adicione pelo menos os campos listados na coluna de resultados a um documento para ver o resultado.

LOAD DISTINCT

Instrument,

SubField(Player,',') as Player,

SubField(Project,',') as Project;

 

Load * inline [

Instrument|Player|Project

Guitar|Neil,Mike|Music,Video

Guitar|Neil|Music,OST

Synth|Neil,Jen|Music,Video,OST

Synth|Jo|Music

Guitar|Neil,Mike|Music,OST

] (delimiter is '|');

Exemplo 6
Instrument Player Project
Guitar Mike Music
Guitar Mike Video
Guitar Mike OST
Guitar Neil Music
Guitar Neil Video
Guitar Neil OST
Synth Jen Music
Synth Jen Video
Synth Jen OST
Synth Jo Music
Synth Neil Music
Synth Neil Video
Synth Neil OST

Participe do Programa de Modernização do Analytics

Remove banner from view

Modernize sem comprometer seus valiosos aplicativos QlikView com o Programa de Modernização do Analytics. Clique aqui para mais informações ou entre em contato: ampquestions@qlik.com