Dada um registro com vários campos separado por pipe (ex.
|I051|10||3.01.01.01.03.03.00|) podemos obter o valor entre os pipes passando o registro e o número do campo conforme abaixo:
SELECT dbo.bpo_retorna_campo_geral('|I051|10||3.01.01.01.03.03.00|',3) AS 'valor'
Neste caso obtemos como retorno o valor 10, pois é o valor imediatamente antes do 3.o pipe.
SELECT dbo.bpo_retorna_campo_geral('|I051|10||3.01.01.01.03.03.00|',5) AS 'valor' o retorno será o valor 3.01.01.01.03.03.00