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

[SOLUCIONADO] clausula HAVING

Estas en el tema de clausula HAVING en el foro de Mysql en Foros del Web. Hola a todos. Hago la siguiente consulta sql @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT provincia FROM provincias GROUP BY provincia HAVING provincia != '' ...
  #1 (permalink)  
Antiguo 20/06/2013, 11:26
 
Fecha de Ingreso: octubre-2012
Ubicación: Friol
Mensajes: 25
Antigüedad: 11 años, 6 meses
Puntos: 0
clausula HAVING

Hola a todos.
Hago la siguiente consulta sql
Código MySQL:
Ver original
  1. SELECT provincia
  2. FROM provincias GROUP BY provincia HAVING provincia!='' "
Intento quitar que el campo provincia no este vacio, pero en la fila de resultados no me aparecen las provincias A Coruña, Ciudad Real, etc. Es decir las que tienen un espacio en su nombre.
Sabeis a que es debido.
Saludos

Última edición por gnzsoloyo; 20/06/2013 a las 12:09
  #2 (permalink)  
Antiguo 20/06/2013, 11:35
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: clausula HAVING

Para preguntar si un campo está vacio no tienes que preguntar si su valor es "" sino si su valor es null. Mysql tiene una función isnull(campo) que devuelve true si el campo setá vacio y false si no lo está.

También creo que tienes un error conceptual en el having. Es frecuente confundir el where y el having.

la claúsula where establece una condicion para seleccionar los registros con los cuales vas a operar. Aquellos que no cumplan la condición no entran en la orden sql. Una vez haces la orden sql y hayas agrupado es posible que algunos de esos grupos que has obtenido no los quieras. Para eso está la claúsula having. Lo que pongas en having se realiza una vez realizada la operación y no antes.

Por esa razon si tu quieres hacer una operacion y descartar los que tengan provincia null tendrías (etiendo yo) que poner 'where not isnull(provincia). De esa manera los demás serían agrupados por provincia. Si en vez de eso pones el having entonces te hace los grupos incluyendo uno con provincia vacia y luego descartas ese grupo.

Puede parecer lo mismo a primera vista pero no es igual. Ni siquiera parecido.
  #3 (permalink)  
Antiguo 20/06/2013, 11:52
 
Fecha de Ingreso: octubre-2012
Ubicación: Friol
Mensajes: 25
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: clausula HAVING

Gracias Gedeon, voy a hacer lo que me dices con where y not isnull
Saludos

Etiquetas: campo, clausula, select, sql
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 03:17.