次のようなものが欲しいようですね
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 の値。