Hola Lista

SELECT  'abcfd 333 nnn DNI: 623663.99.99.9090 ldsklñdskñdksfmdlkffjdfd' as
dato,
split_part(trim(split_part('abcfd 333 nnn DNI: 623663.99.99.9090
ldsklñdskñdksfmdlkffjdfd','DNI:',2)),' ',1) as resultado

------

                           dato                            |    resultado
---------------------------------------------------------------+-------------------
 abcfd 333 nnn DNI: 623663.99.99.9090 ldsklñdskñdksfmdlkffjdfd |
623663.99.99.9090






El 23 de marzo de 2017, 13:16, Francisco Olarte<fola...@peoplecall.com>
escribió:

> Gerardo:
>
> 2017-03-23 17:57 GMT+01:00 Gerardo Herzig <gher...@fmed.uba.ar>:
> >> Buenos dias
> >> Necesito extraer de un campo de texto los nros de DNI contenidos en
> >> él.
> >> Sé que los mismos se encuentran luego de la cadena 'DNI:'
> >>
> >> Con substring(texto from 'DNI:') ubico la cadena
> ...
>
> > Que tal una expresion regular para borrar todo lo que *no* sean numeros:
>
> Eso te vale si solo esta el dni, pero...
>
> >
> > select regexp_replace(texto, '[^0-9]', '','g') from tabla;
>
> > postgres=# select *, regexp_replace(dni, '[^0-9]', '','g') as
> solo_numeros from dnis;
> >         dni         | solo_numeros
> > --------------------+--------------
> >  DNI:    12.382.712 | 12382712
> >  DNI:12382712       | 12382712
> >  DNI:123827..12     | 12382712
> > (3 rows)
> -- Que pasa si meto esto delante del select?
> copy dnis(dni) from stdin;
> Numero de telefono: 6666666
> DNI: desconocido, TEL: 12345678
> Tel: 66666 DNI: 12345678 Direccion: Avda. Pensilvania 1600
> 44100 = 2*2*3*3*5*5*7*7, tricky uh?
> \.
> -- Lo digo porque si tiene que buscar DNI: me extraña que la columna
> sea simplemente "los digitos del dni con alguna cosa mas".
>
> 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
>



-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.

Responder a