Quindi il tuo obiettivo è ottenere l'elenco dei nomi delle colonne in modo tale che tutti abbiano almeno un valore non NULL in una qualsiasi delle righe, giusto? Se è così, vedi sotto...
Non puoi parametrizzare i nomi delle colonne in una query SQL, quindi dovrai creare il tuo testo SQL in modo dinamico, nella lingua client di tua scelta. L'algoritmo sarebbe simile a questo:
- Dovrai conoscere in anticipo l'elenco dei nomi delle colonne. Esistono modi per automatizzare il recupero di questo elenco in PostgreSQL , MySQL e la maggior parte degli altri database.
- Esplora questo elenco e per ogni
column_name
crea dinamicamente il testo SQL come:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1
(vedi MySQL LIMIT e PostgreSQL LIMIT ). - Esegui la query sopra e recupera il risultato. Se contiene una riga, aggiungi il
column_name
all'elenco dei risultati . - Continua a scorrere finché sono presenti elementi nell'elenco dei nomi delle colonne.
L'elenco risultante ora contiene colonne con almeno un valore diverso da NULL.