Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema con consulta SQL y Ucase

Estas en el tema de Problema con consulta SQL y Ucase en el foro de Bases de Datos General en Foros del Web. Hola amigos que tal, tengo un problemilla con la siguiente consulta, es esta: Select * from sesiones WHERE UCase(codmonitor) like '%" & UCase(lngcodmonitor) & "%' ...
  #1 (permalink)  
Antiguo 31/03/2008, 18:30
Avatar de cokete  
Fecha de Ingreso: noviembre-2004
Mensajes: 224
Antigüedad: 19 años, 5 meses
Puntos: 0
Problema con consulta SQL y Ucase

Hola amigos que tal, tengo un problemilla con la siguiente consulta, es esta:

Select * from sesiones WHERE UCase(codmonitor) like '%" & UCase(lngcodmonitor) & "%' order by codsesion

Esta consulta me filtra las sesiones por monitor, si la variable "lngcodmonitor" esta vacia me muestra todas las sesiones (correcto) y si le meto un valor a "lngcodmonitor" me muestra las sesiones de ese monitor.

Mi problema es el siguiente, si el codigo que le mando es "1" me muestra las sesiones de los monitores con codigo 1, 10, 11, 12, 13 ...... y asi sucesivamente, todos los monitores que tienen un 1 en el codigo. no entiendo por que me hace esto.


Hay alguna manera de que no me haga esto y al mandarle un valor vacio a la variable del codigo me siga sacando todas las sesiones?

Un Saludo y gracias¡¡
  #2 (permalink)  
Antiguo 01/04/2008, 01:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: Problema con consulta SQL y Ucase

Lo hace por el LIKE si lo substituyes por "=" luego solo mostrará el monitor pedido, pero cuando sea nulo no te derá todos los monitores.

Para conseguir esto deberias construir dinámicamente la sentencia SQL. Esto tendrás que hacerlo con el lenguage de programación que uses mira en el subforo correspondiente (if isnull(codmonitor) sql='xxLIKExx' else sql='yy=yy').

Quim
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:08.