Contagem de uma sequência em uma string
Enviado: Sex, 13 Dez 2013 10:38 am
Olá pessoal, preciso de uma ajuda.
Possuo uma string que tem vários caracteres e números, às vezes separados por colchetes ([ ]), por chaves ({ }) e por pipes (|) entre eles, e preciso fazer uma contagem dos valores que estão dentro deles. Em determinadas circunstâncias, preciso que sejam combinadas.
Ex.:
Nesse exemplo, poderia contar uma só sequência ou duas.
- quantas vezes a sequência 4524 aparecem;
- quantas vezes as sequências 4524 e 5512 aparecem.
Já tentei utilizando LENGTH, mas são aproximadamente 20 sequências diferentes, e consulta ficaria enorme utilizando o LENGTH.
Para contar apenas uma sequência, utilizei a função REGEXP_COUNT da seguinte forma:
O problema está em contabilizar quando são duas sequências diferentes:
Tentei utilizar a função REGEXP_COUNT da seguinte forma:
Mas ele conta ou 4524 o 5512.
Como faço para que a função REGEXP_COUNT faça a contagem quando são duas sequências diferentes, ou se existir alguma outra função.
Agradeço desde já pela ajuda.
Possuo uma string que tem vários caracteres e números, às vezes separados por colchetes ([ ]), por chaves ({ }) e por pipes (|) entre eles, e preciso fazer uma contagem dos valores que estão dentro deles. Em determinadas circunstâncias, preciso que sejam combinadas.
Ex.:
[LOG]2331|1321{VP}|4524|5512]|885|4242113234{eddx]|5424|4524
- quantas vezes a sequência 4524 aparecem;
- quantas vezes as sequências 4524 e 5512 aparecem.
Já tentei utilizando LENGTH, mas são aproximadamente 20 sequências diferentes, e consulta ficaria enorme utilizando o LENGTH.
Para contar apenas uma sequência, utilizei a função REGEXP_COUNT da seguinte forma:
SELECT REGEXP_COUNT('campo','\|4524\|') FROM (SELECT REPLACE(REPLACE(REPLACE(REPLACE('campo','[','|'),']','|'),'{','|'),'}','|') campo FROM 'table').
Tentei utilizar a função REGEXP_COUNT da seguinte forma:
SELECT REGEXP_COUNT('campo','\|4524\||\|5512\|') FROM 'table'
Como faço para que a função REGEXP_COUNT faça a contagem quando são duas sequências diferentes, ou se existir alguma outra função.
Agradeço desde já pela ajuda.