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:
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.
|
Exemplos e resultados:
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;
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 '|');
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 '|');
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 |