[pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Thread Herman Estaban
Buenas tardes, todos los campos primary key y foreign key de mis tablas son de tipo de datos INTEGER y BIGINT. Y tengo la necesidad de hacer un LIKE a un campo de tipo INTEGER en un SELECT. Que tan eficiente es hacer esto: WHERE CAST(ID_TIP_REG AS CHAR) LIKE '1%' LIKE es mas rapido con CHAR, VA

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Thread Hellmuth Vargas
Hola Herman Pensaría que tiene algo como: dominio de ID_TIP_REG: de 100 a 199 -> categoria1 de 200 a 299 -> categoria2 de 300 a 399 -> categoria3 Si es así no debería utilizar LIKE sin mas bien un BETWEEN WHERE ID_TIP_REG BETWEEN AND El 21 de junio de 2016, 16:01, Herman Estaban

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Thread Herman Estaban
Hellmuth gracias por la respuesta. Necesito el LIKE para devolver todo los codigos y tambien elegir un codigo especifico. WHERE CAST(ID_TIP_REG AS CHAR) LIKE param; param : Que puede ser '%' todos o cualquiera de estos codigos 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 99. Como ya habia mencion

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Thread Hellmuth Vargas
Hola Herman En ese caso, si tiene bastantes registros, la distribución es mas o menos heterogénea y la consulta se trata de prefijo (empieza por) podría probar: 1.Crear indice sobre la versión texto de la columna entera, ejemplo: CREATE INDEX idx_indice_patron ON tabla (CAST(ID_TIP_REG AS TEXT)

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Thread Crispin T.
Hola Hernan. llevo mucho tiempo sin trabajar directamente con postgresql.(y sin colaborar en la lista). asi que nose si mi idea esta bien o es pesima. select * from TU_TABLA_CON_ID_BIGINT where id_tip_reg in ( --//el campo id_tip_reg es tu bigint en BD

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Thread Herman Estaban
Gracias por las respuestas. Voy a explicar mejor lo que requiero. Tengo una tabla PRD_REG con 02 campos: ID_TIP_REG INTEGER NOM_TIP_REG VARCHAR(25) Esta tabla tiene 14 registros y esta registrado asi: ID_TIP_REG | NOM_TIP_REG 1 | DETALLADO 2 | MARCADO 3

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Thread Hellmuth Vargas
Hola Herman El filtro no debería aplicarse sobre la llave foranea ID_TIP_REG, la consulta hipotética seria algo así: SELECT campos FROM tabla1 AS a JOIN PRD_REG AS b ON a.ID_TIP_REG=b.ID_TIP_REG WHERE b.*NOM_TIP_REG like param*: donde *param* puede ser cualquier de los valores del dominio (DET

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-22 Thread Alvaro Herrera
Herman Estaban escribió: > Tengo una tabla PRD_REG con 02 campos: > > ID_TIP_REG INTEGER > NOM_TIP_REG VARCHAR(25) > > Esta tabla tiene 14 registros y esta registrado asi: > > ID_TIP_REG | NOM_TIP_REG > 1 | DETALLADO > 2 | MARCADO > 3 | PR

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-22 Thread eduardo reyes
Buenas. Lo mas simple para esto es usar un OR -- SELECT * FROM PRD_REG WJERE (ID_TIP_REG = param OR param = 0) Saludos. El 22 de junio de 2016, 9:31, Alvaro Herrera escribió: > Herman Estaban escribió: > > > Tengo una tabla PRD_REG con 02 campos: > > > > ID_TIP_REG INTEGER > > NOM_TIP_REG

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-22 Thread Alvaro Herrera
eduardo reyes escribió: > Buenas. > Lo mas simple para esto es usar un OR > -- > SELECT * >FROM PRD_REG > WJERE (ID_TIP_REG = param OR param = 0) Ya ven lo que pasa cuando uno responde antes de desayunar -- tu solución es mucho más simple. Pero yo usaría NULL en vez de 0: SELECT * FR

Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-22 Thread Herman Estaban
Gracias por sus aportes. Saludos. El mié., 22 jun. 2016 a las 9:48, Alvaro Herrera () escribió: > eduardo reyes escribió: > > Buenas. > > Lo mas simple para esto es usar un OR > > -- > > SELECT * > >FROM PRD_REG > > WJERE (ID_TIP_REG = param OR param = 0) > > Ya ven lo que pasa cuando uno