Em 5 de dezembro de 2012 16:15, Rubens José Rodrigues <
[email protected]> escreveu:

> Olá pessoal!
>
> Tenho um atributo do tipo varchar(4) em que pode conter valores do tipo
> '12','23','34','24','1234' etc. Tudo tem um significado, e, nesse caso
> significam plano de visitas  semanais.
>
> Minha necessidade:
>
> a) Transformar essa cadeia de caracteres em vetor de inteiros para me
> facilitar nas consultas, exemplo : '12' = [1,2].
>

veja  se isso te atende
select regexp_split_to_array('123', E'\\s*')::integer[]
vc terá que substituir a string fixa pela sua coluna

b) Como saber se  1 está presente em [1,2,3,4]
>

Você pode utilizar os operadores ANY e ALL para verificar a existência  de
um elemento no array

ex:
select * from
(select regexp_split_to_array('123', E'\\s*')::integer[] as v) as ret
where 1 = any (ret.v)

[]s

Edson Souza
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a