sql >> データベース >  >> RDS >> Mysql

NULL以外のデータを含むフィールドのリストを返すSQL

    つまり、目標は列名のリストを取得することです。 それらのすべてがいずれかの行に少なくとも1つの非NULL値を持つようになりますよね?もしそうなら、以下を参照してください...

    SQLクエリの列の名前をパラメータ化することはできないため、選択したクライアント言語でSQLテキストを動的に作成する必要があります。アルゴリズムは次のようになります:

    1. 列名のリストを事前に知っておく必要があります。 PostgreSQL でこのリストの取得を自動化する方法があります。 、 MySQL および他のほとんどのデータベース。
    2. このリストを繰り返し、column_nameごとに繰り返します 次のようなSQLテキストを動的に作成します。SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1 (MySQL 制限 を参照してください。 およびPostgreSQL制限 。
    3. 上記のクエリを実行し、結果を取得します。行が含まれている場合は、column_nameを追加します 結果リストへ 。
    4. 列名リストに要素がある間、繰り返し続けます。

    結果のリストには、少なくとも1つのNULL以外の値を持つ列が含まれています。



    1. 2つの日付の間の日付を取得する

    2. mysql2.so:libmysqlclient_r.so.15:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません

    3. ./mysqldumpの実行時に特殊文字を保持する方法は?

    4. MySQL基準でのサブストリングの使用