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

Consulta sin valores null

Estas en el tema de Consulta sin valores null en el foro de Bases de Datos General en Foros del Web. Buen día foro.. En vista a que no he encontrado una solución desde .net para solucionar esto , pensé en tratar de darle una solución ...
  #1 (permalink)  
Antiguo 26/11/2009, 15:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Consulta sin valores null

Buen día foro..

En vista a que no he encontrado una solución desde .net para solucionar esto, pensé en tratar de darle una solución viable con una consulta SQL.

Les explico un poco la situación.
tengo estos datos.
Código mysql:
Ver original
  1. mysql> select *from pruebas;
  2. +--------+--------+--------+
  3. | campo1 | campo2 | campo3 |
  4. +--------+--------+--------+
  5. | algo   | algo   | algo   |
  6. | algo   | algo   | algo   |
  7. | algo   | algo   | algo   |
  8. | algo   | algo   | algo   |
  9. | algo   | algo   | algo   |
  10. | algo   | algo   | algo   |
  11. | algo   | NULL   | algo   |
  12. | algo   | algo   | NULL   |
  13. | NULL   | algo   | NULL   |
  14. | NULL   | NULL   | NULL   |
  15. | NULL   | NULL   | NULL   |
  16. | NULL   | NULL   | NULL   |
  17. | NULL   | NULL   | NULL   |
  18. | NULL   | NULL   | NULL   |
  19. +--------+--------+--------+
  20. 14 rows in set (0.00 sec)

y necesitaría una salida así.

Código mysql:
Ver original
  1. +--------+--------+--------+
  2. | campo1 | campo2 | campo3 |
  3. +--------+--------+--------+
  4. | algo   | algo   | algo   |
  5. | algo   | algo   | algo   |
  6. | algo   | algo   | algo   |
  7. | algo   | algo   | algo   |
  8. | algo   | algo   | algo   |
  9. | algo   | algo   | algo   |
  10. | algo   | NULL   | algo   |
  11. | algo   | algo   | NULL   |
  12. | NULL   | algo   | NULL   |

Que cuando el archivo encuentre que en todos los campos estén en null, no los muestre, sin embargo, si uno de los campos es null, lo muestre para mostrar la linea del archivo donde se encuentra el error.

Traté con esto,
Código mysql:
Ver original
  1. mysql> select *from pruebas where campo1 is not null and campo2 is not null and campo3 is not null;
  2. +--------+--------+--------+
  3. | campo1 | campo2 | campo3 |
  4. +--------+--------+--------+
  5. | algo   | algo   | algo   |
  6. | algo   | algo   | algo   |
  7. | algo   | algo   | algo   |
  8. | algo   | algo   | algo   |
  9. | algo   | algo   | algo   |
  10. | algo   | algo   | algo   |
  11. +--------+--------+--------+
  12. 6 rows in set (0.00 sec)
  13.  
  14. mysql>

Pero no me muestra los registros que tienen null que si necesito mostrar.

Cualquier idea o solución, sea de una consulta o de la aplicación como tal, será bien recibida.

PD: Pongo en el ejemplo mysql para mostrar los datos, pero la consulta se hace mediante oledb en un archivo de excel.


saludos y mil gracias
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #2 (permalink)  
Antiguo 26/11/2009, 19:43
serser
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta sin valores null

En la consulta cambia AND por OR
  #3 (permalink)  
Antiguo 26/11/2009, 21:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta sin valores null

Me parece que sería más simple excluir la única condición que se rechaza:
Código sql:
Ver original
  1. SELECT *
  2. FROM pruebas
  3. WHERE NOT (campo1 IS NULL AND campo2 IS NULL AND campo3 IS NULL);

Fuera de eso, me parece un error completo que haya registros con NULL en todas sus columnas. Es más que extraño.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 26/11/2009, 22:02
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Consulta sin valores null

Mañana a primera hora probaré lo que dices gnzsoloyo. Creo que funcionará

Cita:
Fuera de eso, me parece un error completo que haya registros con NULL en todas sus columnas. Es más que extraño.
Fijate en este post. Realmente esto se reduce a que aun no tengo la sufuciente experiencia con .net leyendo archivos de excel, y no logro determinar cada celda que tipo de dato guarda.

Como digo en el post, si el archivo es nuevo, corre sin problemas. Al hacer la consulta y pasarla al datatable, trae el numero real de registros.
Sin embargo, si tengo información en un archivo y la borro, las celdas almacenan un null y este es pasado al datatable donde me confunde cuales son casillas nulas por error del usuario y cuales son nulas por borrar una información y almacenar null por defecto. Para un datatable un null es algo y lo almacena como tal.

se entiende? tienen otras ideas?

Mañana les cuento como me va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 27/11/2009, 07:19
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Consulta sin valores null

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Me parece que sería más simple excluir la única condición que se rechaza:
Código sql:
Ver original
  1. SELECT *
  2. FROM pruebas
  3. WHERE NOT (campo1 IS NULL AND campo2 IS NULL AND campo3 IS NULL);

Fuera de eso, me parece un error completo que haya registros con NULL en todas sus columnas. Es más que extraño.

Funcionó perfecto.

Mil gracias.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 14:14.