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 fora, 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
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. Use o valor 1 para retornar a primeira subcadeia, 2 para retornar a segunda subcadeia, e assim por diante.
Se field_no for um valor positivo, as subcadeias serão extraídas da esquerda para a direita.
Se field_no for um valor negativo, as subcadeias serão extraídas da direita para a esquerda.
Nota de dicaSubField() 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: Expressões de script e gráfico usando SubField
Exemplos básicos
Exemplo
Resultado
SubField(S, ';' ,2)
Retorna 'cde' se S for 'abc;cde;efg'.
SubField(S, ';' ,1)
Retorna uma string vazia quando S é uma string vazia.
SubField(S, ';' ,1)
Retorna uma string vazia se S for ';'.
Imagine que você tem 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.
Exemplo de script 1
Script de carregamento
Carregue as seguintes expressões de script e dados no editor de carregamento de dados.
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;
Criar uma visualização
Crie uma visualização de tabela em uma Qlik Sense do Qlik Cloud com Name, FirstName e SurName como dimensões
Resultado
Name
FirstName
SurName
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
Explicação
A função SubField() extrai a primeira substring de Name definindo o argumento field_no como 1. Como o valor de field_no é positivo, uma ordem da esquerda para a direita é seguida para extrair a subtring. Uma segunda chamada de função extrai a segunda substring definindo o argumento field_no como -1, que extrai a substring seguindo uma ordem da direita para a esquerda.
Exemplo de script 2
Script de carregamento
Carregue as seguintes expressões de script e dados no editor de carregamento de dados.
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 '|');
Criar uma visualização
Crie uma visualização de tabela em uma pasta do Qlik Sense com Instrument, Player e Project como dimensões.
Resultado
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
Explicação
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 do mesmo comando LOAD, cria produtos Cartesianos de todas as combinações. A opção DISTINCT é usada para evitar a criação de registros duplicados.
Esta página ajudou?
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!