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í:
- 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.
- 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 ). - Ejecute la consulta anterior y obtenga el resultado. Si tiene una fila, agregue el
column_name
a la lista de resultados . - 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.