Page 1 of 1
Se puede hacer esto ?
Posted: Sun May 29, 2016 8:00 pm
by Pedro
Hola a todos
Me gustaría saber si se puede usar en una búsqueda SQL SELECT * FROM XXX WHERE Substr(campo,1,3) = Expresion ORDER BY (campo de orden)
y como ponerlo en la sentencía
Gracias
Re: Se puede hacer esto ?
Posted: Sun May 29, 2016 9:03 pm
by fgondi
Re: Se puede hacer esto ?
Posted: Tue May 31, 2016 11:09 am
by Carlos Mora
Pedro,
usar una funcion en el where probablemente suprima las optimizaciones que suele hacer un SQL. En MySQL puede usar un SELECT * FROM XXX WHERE campo LIKE "ABC%", que es mucho más rápido porque sabe como optimizarlo. Si usas otro motor habrá que ver si soporta el LIKE.
Un saludo
Re: Se puede hacer esto ?
Posted: Tue May 31, 2016 3:36 pm
by Pedro
Gracias por la respuesta Fernando, pero no me hace el recordset usando SUBSTRING.
Carlos estoy usando ADO con un ACCESS y el tema es que el campo por el que quiero sacar los datos tiene un ancho de 8 caracteres, pero solo quiero pillar los 3 primeros y que me saque todos los registros, cuyos 3 primeros digitos de ese campo sean iguales a los solicitados por el usuario, y creo que puede soportar LIKE perfectamente
Re: Se puede hacer esto ?
Posted: Wed Jun 01, 2016 5:10 pm
by Francisco Horta
Pedro,
prueba asi,
SELECT * FROM tu_tabla WHERE tu_campo LIKE "%PAQ"
aqui te va a regresar en la consulta todos los registros que en tu campo empiecen con PAQ
Saludos
Paco
Re: Se puede hacer esto ?
Posted: Thu Jun 02, 2016 6:54 am
by Pedro
Gracias Francisco, lo conseguí con LIKE y me regresa bien los registros cuyos tres primeros dígitos sean iguales a los pedidos por el usuario.
Ahora tengo otra duda, como hacer una comparación de un campo lógico, es decir traer todos aquellos registros cuyo campo X sea Verdadero , o Falso según se pida.
Lo he intentado comparando el campo con Cero y Uno, pero no me trae registros
Un saludo a todos
Re: Se puede hacer esto ?
Posted: Thu Jun 02, 2016 10:30 am
by acuellar
Pedro
Así
Code: Select all
WHERE !CampoLógico // para .F. También se puede poner NOT CampoLógico
WHERE CampoLógico // para .T.
Saludos,
Adhemar
Re: Se puede hacer esto ?
Posted: Sat Jun 04, 2016 2:40 pm
by Francisco Horta
Pedro,
como dice ademar o asi:
Code: Select all
WHERE tu_campologico = '0'
WHERE tu_campologico = '1'
WHERE tu_campologico is not null
WHERE tu_campologico is null
Saludos
Re: Se puede hacer esto ?
Posted: Sat Jun 04, 2016 3:38 pm
by Carlos Mora
Pedro,
Pedro wrote:... como hacer una comparación de un campo lógico, es decir traer todos aquellos registros cuyo campo X sea Verdadero , o Falso según se pida.
Lo he intentado comparando el campo con Cero y Uno, pero no me trae registros
Si pones la consulta que estás haciendo seguro que vamos a corregir lo que pudiera estar mal, es mucho más sencillo trabajar sobre algo, sino solo podemos hacer especulaciones.
un saludo