No mostrar columnas vacías en un select

Tengo una tabla ITEMS :

cod | nombre | campo1 | campo 2 | campo 3 | campo 4 |

01 | xxxx | xxxxx | xxxxxxx | xxxxxxxx | NULL |

02 | xxxxx | xxx | xxxxxxx | NULL | NULL |

03 | xx | xxxxx | xxxxx | NULL | NULL |

Quiero que al realizar una consulta "select * from ITEMS" me muestre todos los campos menos el campo 4 ya que no existe ningún valor en toda la columna...

1 Respuesta

Respuesta
1

¿La pregunta es referente a un caso en concreto o quieres una solución genérica?

Si es para el caso en concreto, simplemente especifica que campos quieres ver en la query:

select cod, nombre, campo1, campo2, campo3 from items

de lo contrario, si quieres algo genérico, no es possible, no puedes decirle que parecerca o no una columna en función de los datos. Recuerda que sql funciona por filas/datos/valores, dile como quieras, pero en resumen, tu le pides algo, y el te muestra, que datos coinciden con tu petición. Es decir, no puedes hacer un, select, que si una columna todos los valores son null, no te muestre la columna, lo mas que puedes hacer con los null, es poner un texto personalizado. con la función ifnull() nvl() o isnull() (la que te sirva dependerá de que base de datos utilices) poniendo:

select cod, nombre, campo1, campo2, campo3, NVL(campo4, 'sin datos') from items

Lo que te mostraría:

cod | nombre | campo1 | campo 2 | campo 3 | campo 4 |
01 | xxxx | xxxxx | xxxxxxx | xxxxxxxx | sin datos |
02 | xxxxx | xxx | xxxxxxx | NULL | sin datos |
03 | xx | xxxxx | xxxxx | NULL | sin datos |

Espero ayudarte, aunque sea diciéndote que no puedes hacerlo si lo que querías era lo segundo.

Si es así...entonces como dices tendré que rellenar los null con valores distintos ... para especificar que no existe algún valor...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas