separar string com valores de tamanho variavel - SPLIT de String

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
plinioprotheus
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Seg, 05 Jul 2021 10:05 pm
Localização: são paulo

Bom dia!

Tenho a seguinte informação:

no campo categoria é gravado a seguinte string:

Selecionar tudo

MERCEARIA \ MERCEARIA COMPLEMENTAR \ DOCES RECHEIOS COBERTURAS \FRUTA EM CALDA \ ABACAXI EM CALDA
São 5 niveis com tamanhos variaveis, preciso separar em colunas com cada nivel, por exemplo:

Selecionar tudo

produto   |nivel 1       |nivel 2                  |nivel 3                    |nivel 4            |nivel 5
NNNNNNNN   mercearia      mercearia complementar    doce recheios cobertura     Fruta em calda      abacaxi em calda
Verifiquei que o SPLIT de String separa a string, mas os resultados são gerados em uma coluna e não em varias colunas, como posso realizar essa separação?
cada produto tem a sua categoria, portanto o tamanho não é fixo.

Obrigado.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Neste tópico: viewtopic.php?t=1653

Você encontra uma função chamada "ELEMENTO". Ela extrai um elemento dentro de uma string separada por um delimitador.
Você precisa criar essa função no seu banco de dados.


exemplo:

Selecionar tudo

SQL> select elemento('aaa;bbbbbbb;cccc;dddd', 1, ';') x from dual;

X
--------
aaa

SQL> select elemento('aaa;bbbbbbb;cccc;dddd', 2, ';') x from dual;

X
--------
bbbbbbb

SQL> 
Ou seja, você precisa fazer algo assim: (pelo que eu entendi o PRODUTO não está na query, portanto vai começar em 2)

Selecionar tudo

SELECT 
  elemento ( CAMPO_CATEGORIA, 2, '\') mercearia
, elemento ( CAMPO_CATEGORIA, 3, '\') mercearia_complementar
, elemento ( CAMPO_CATEGORIA, 4, '\') doces_recheios_coberturas
.
.
.
FROM sua_tabela
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 22 visitantes