Baru:

2017-03-24 14:12 GMT+01:00 baru gerardi <soyb...@gmail.com>:
> Soy novato y miraré en detalle las respuestas para aprender.

Mira tambien los manuales. Yo personalmente recomiendo el original,
que es un ingles muy asequible sobre todo en la parte de referencias
de funciones.


> Si me permiten, una pregunta mas
> Exista alguna manera dentro del substring como para posicionarme
> en la cadena de texto con una subcadena y de ahi tomar un desplazamiento?
> Disculpen el invento, pero imagino algo del tipo
> substring(texto, 'DNI:', n)

De ahi lo de leer el manual, en la pagina donde describe el substring
te cuenta, justo debajo de la variante de substring con indices
numericos:

substring(string from pattern) text Extract substring matching POSIX
regular expression. See Section 9.7 for more information on pattern
matching.

De ahi, viendo el ejemplo, puedes hacer substring(texto from
'DNI:.........') ( con n puntos, o si lo prefieres mira los
cuantificadores en la referencia de los pattern ).

No solo eso, sino que justo encima del substring clasico con enteros
(substring(string [from int] [for int]) tienes la function
position(substring in string). De esas puedes sacar la solucion
clasica para lo que quieres ( en muchos lenguajes no tienes la que
quieres, pero tienes una que busca y otra que corta ). Vamos, divide
et impera:

$ select position('DNI:' in 'TEL:22 DNI:123456789 AGE:66');
 position
----------
        8
(1 row)

$ select substring('TEL:22 DNI:123456789 AGE:66' from position('DNI:'
in 'TEL:22 DNI:123456789 AGE:66')+4 for 8);
 substring
-----------
 12345678
(1 row)

$ select substring('TEL:22 DNI:123456789 AGE:66' from position('DNI:'
in 'TEL:22 DNI:123456789 AGE:66')+char_length('DNI:') for 8);
 substring
-----------
 12345678
(1 row)

( La ultima es para que veas como podrias meterlo todo en una funcion )

> Algo asi de sencillo resolveria mi problema, que es muy básico

Complicado no es, es mas o menos lo mismo que en los lenguajes mas normales.

Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a