sql >> Base de Datos >  >> RDS >> Mysql

SQL para devolver la lista de campos que contienen datos no NULL

Entonces, su objetivo es obtener la lista de nombres de columna de modo que todos ellos tengan al menos un valor no NULL en cualquiera de las filas, ¿verdad? Si es así, vea a continuación...

No puede parametrizar los nombres de las columnas en una consulta SQL, por lo que deberá crear su texto SQL dinámicamente, en el idioma del cliente que elija. El algoritmo se vería así:

  1. Tendrá que conocer la lista de nombres de columnas con anticipación. Hay formas de automatizar la recuperación de esta lista en PostgreSQL , MySQL y la mayoría de las otras bases de datos.
  2. Iterar a través de esta lista y para cada column_name construya dinámicamente el texto SQL como:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1 (consulte MySQL LIMIT y PostgreSQL LIMIT ).
  3. Ejecute la consulta anterior y obtenga el resultado. Si tiene una fila, agregue el column_name a la lista de resultados .
  4. Siga iterando mientras haya elementos en la lista de nombres de columna.

La lista resultante ahora contiene columnas con al menos un valor no NULL.