Ir para o conteúdo principal

With, Substr, Split_part e Strpos

Neste exemplo será mostrado como utilizar as funções WithSubstr e Split_part e Strpos combinadas. Vamos dividir em colunas, as informações de uma nota fiscal parametrizadas por posição.

Texto com as informações:

'NF 123456 - DT 07/10/2019 - VL 37,99'

SQL: 

  WITH nota AS (SELECT 'NF 123456 - DT 07/10/2019 - VL 37,99' AS dados)
SELECT substr(split_part(dados, 'NF', 2), 2, strpos(split_part(dados, 'NF', 2), '-')-3) AS numeronf,
       substr(split_part(dados, 'DT', 2), 2, strpos(split_part(dados, 'DT', 2), '-')-3) AS dataemissao,
	   substr(split_part(dados, 'VL', 2), 2) AS valortotal
  FROM nota

Retorno: 

| NUMERONF | DATAEMISSAO | VALORTOTAL |
---------------------------------------
| 123456   | 07/10/2019  | 37,99      |

Neste caso:

  • With: está sendo utilizado para que não seja preciso retornar o texto em todas as colunas, evitando repetir código e tempo de processamento;
  • Substr: está retornando dados a partir de uma posição até outra informadas do texto;
  • Split_part: retorna parte do texto a partir do caractere ou conjunto de caracteres informados;
  • Strpos: retorna a posição do texto, onde se encontra o caractere ou conjunto de caracteres informado, para usar a posição no Substr;