Se puede hacer esto ?

Post Reply
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Se puede hacer esto ?

Post 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
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Re: Se puede hacer esto ?

Post by fgondi »

La función que buscas en sql es SubString()

https://msdn.microsoft.com/es-es/librar ... .120).aspx
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Se puede hacer esto ?

Post 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
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Se puede hacer esto ?

Post 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
Last edited by Pedro on Tue May 31, 2016 3:42 pm, edited 1 time in total.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Se puede hacer esto ?

Post 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
____________________
Paco
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Se puede hacer esto ?

Post 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
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Se puede hacer esto ?

Post 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
Saludos,

Adhemar C.
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Se puede hacer esto ?

Post 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
____________________
Paco
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Se puede hacer esto ?

Post 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
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Post Reply