つまり、目標は列名のリストを取得することです。 それらのすべてがいずれかの行に少なくとも1つの非NULL値を持つようになりますよね?もしそうなら、以下を参照してください...
SQLクエリの列の名前をパラメータ化することはできないため、選択したクライアント言語でSQLテキストを動的に作成する必要があります。アルゴリズムは次のようになります:
- 列名のリストを事前に知っておく必要があります。 PostgreSQL でこのリストの取得を自動化する方法があります。 、 MySQL および他のほとんどのデータベース。
- このリストを繰り返し、
column_name
ごとに繰り返します 次のようなSQLテキストを動的に作成します。SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1
(MySQL 制限 を参照してください。 およびPostgreSQL制限 。 - 上記のクエリを実行し、結果を取得します。行が含まれている場合は、
column_name
を追加します 結果リストへ 。 - 列名リストに要素がある間、繰り返し続けます。
結果のリストには、少なくとも1つのNULL以外の値を持つ列が含まれています。