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
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.
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
Um campo na tabela de dados chamado Name.
Script de carregamento
Example:
Load * inline [
Name
Dave Owen
Joe Tem
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
Name
Crie as seguintes dimensões calculadas:
=SubField(Name, ' ',1) para extrair a primeira substring que aparece antes do delimitador ' ' de espaço.
=SubField(Name, ' ',-1) para extrair a primeira substring que aparece antes do delimitador ' ' de espaço, começando da direita da string.
Results table
Name
SubField(Name, ' ',1)
SubField(Name, ' ',-1)
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
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.
Script de carregamento
Abra o Editor da carga de dados e adicione o script de carregamento a seguir a uma nova guia.
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;
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
Name
FirstName
SurName
Results table
Name
FirstName
SurName
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
Explicação
A função SubField extrai a primeira substring, 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 - Cenário de SubField
Visão geral
Um conjunto de dados de produtos contém uma tabela de produtos. Cada produto da tabela tem um campo de tag que identifica a área do produto. Os produtos podem ter vários valores para o campo de tag. Por exemplo, o Widget A tem as seguintes tags: Eletrônicos, Gadgets, Casa. Os valores das tags são separados pelo caractere de barra vertical (|) como delimitador. Este exemplo mostra como extrair valores de tag específicos usando a função SubField.
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
ProductID
ProductName
Tags
Crie as seguintes dimensões calculadas:
=SubField(Tags, '|',1) para extrair o primeiro item do campo Tags.
=SubField(Tags, '|',2) para extrair o segundo item do campo Tags.
=SubField(Tags, '|',3) para extrair o segundo item do campo Tags.
Results table
ProductID
ProductName
Tags
SubField(Tags, '|', 1)
SubField(Tags, '|', 2)
SubField(Tags, '|', 3)
1
Widget A
Electronics|Gadgets|Home
Electronics
Gadgets
Home
2
Widget B
Electronics|Accessories
Electronics
Accessories
-
3
Widget C
Furniture|Home
Furniture
Home
-
4
Widget D
Gadgets|Accessories
Gadgets
Accessories
-
A saída das funções SubField retornou com sucesso as tags das posições relevantes na string Tags original.
Script de carregamento
Abra o Editor da carga de dados e adicione o script de carregamento a seguir a uma nova guia.
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 '|');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
Instrument
Player
Project
Results table
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!