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

null値を持つ行データからMIN値を選択するSQL

    次のようなものが欲しいようですね

    SELECT least( (case when col1 is null or col1 = 0 then 999999999 else col1 end),
                  (case when col2 is null or col2 = 0 then 999999999 else col2 end),
                  (case when col3 is null or col3 = 0 then 999999999 else col3 end) )
      FROM <<table name>>
      

    ここで、999999999 は、他の有効な値よりも常に大きい数値です。 3 つの列すべてが NULL である可能性がある場合 または 0 の値の場合、その least の結果が 関数が 999999999 で、0 または NULL を返す場合

    @X-Zero は親切にも SQL Fiddle の例 をまとめてくれました このコンストラクトの。彼の例は、3 つの列すべてが NULL のいずれかである行を除外していることに注意してください。 または 0 の値。



    1. MySQLがテキストファイルに書き込む

    2. サブクエリカーディナリティ推定のバグ

    3. 自己参照MySQLテーブルを空にする最良の方法は何ですか?

    4. MyISAMエンジンテーブルリレーション(MySQL)