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 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.

Syntax:  

SubField(text, delimiter[, field_no ])

Return data type: caractere

Arguments:  

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.
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.

Example:  

Adicione o script de exemplo ao seu aplicativo e execute-o. Em seguida, adicione pelo menos os campos listados na coluna de resultados a uma pasta 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;

Tabela resultante
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

Example:  

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.

Adicione o script de exemplo ao seu aplicativo e execute-o. Em seguida, adicione pelo menos os campos listados na coluna de resultados a uma pasta 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 '|');

 

Tabela resultante
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