On Mon, 17 Feb 2014 16:05:18 +0100
Ruben Fitó <[email protected]> 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 <[email protected]>
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda