MAX関数でNULLの場合に属性の値を0に設定する方法を教えてください。例えば:
Name columns:
number - date
Values:
10 - 2012-04-04
11 - 2012-04-04
12 - 2012-04-04
13 - 2012-04-15
14 - 2012-06-21
1 - 2013-07-04
数値は増分フィールドですが、新年が来ると1に設定されます。しかし結果:
SELECT (MAX(number)+1) number WHERE date LIKE "2014%"
mAX(number)はNULLであり、0ではないため、NULLであり、1ではありません。
まあ、2014年のような日付がないので、nullを期待します。なぜなら、最大のものは実際には何も意味がないからです。
しかし、これを行います:
COALESCE(MAX(number),0)
つまり、次のリストから最初のnull以外のものを取得するので、max
がnullの場合、0
COALESCEは機能しますが、 [〜#〜] ifnull [〜#〜] の方がわかりやすいようです。
IFNULL(MAX(number), 0)
最初の式がNULLでない場合、IFNULL()は式自体を返します。それ以外の場合は、2番目のパラメーターを返します。 IFNULL()は、使用されるコンテキストに応じて、数値または文字列値を返します。