On Mon, 17 Feb 2014 16:05:18 +0100 Ruben Fitó <r.f...@ubiquat.com> wrote:
> Hola Jaime, > > concretamente necesito que a partir de un bitmap por ejemplo '101110..n', > este bitmap se traduce a : > > 1 --> Codigo_producto_externo = 1 NO autorizado > 0 --> Codigo_producto_externo = 2 autorizado > 1 --> Codigo_producto_externo = 3 NO autorizado > 1 --> Codigo_producto_externo = 4 NO autorizado > 1 --> Codigo_producto_externo = 4 NO autorizado > 0 --> Codigo_producto_externo = 5 autorizado > . > . > n--> Codigo_producto_externo = posicion de n Mira a ver si una consulta parecida a SELECT * FROM productos WHERE substring('011010' FROM (char_length('011010') - prod_id) FOR 1) = '1'; puede servirte. El cálculo substring('011010' FROM (char_length('011010') - prod_id) FOR 1) se debe a que quieres recorrer la cadena de derecha a izquierda, de lo contrario usarías simplemente substring('011010' FROM prod_id FOR 1) para obtener el prod_id-ésimo valor de la cadena (empezando por la izquierda). He supuesto que los prod_id empiezan en 1. -- Alberto Cabello Sánchez <albe...@unex.es> - 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