2012-04-16 3 views
17

MAX 함수로 NULL 일 때 속성의 0 값을 설정하는 방법을 알고 싶습니다. 예를 들면 다음과 같습니다.NULL 일 때 MAX 함수로 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%" 

는 NULL이 아니라 1 MAX (수) NULL하고 있기 때문에 2014과 같은 어떤 일이 없기 때문에 0이 아닌

답변

31

글쎄, 당신은, 널 기대의 최대 때문에 아무것도 실제로 anyting되지 않습니다.

그러나이 수행

COALESCE(MAX(number),0) 
의미

: 다음 목록에서 첫 번째 null 이외의 일을 얻을, 그래서 max가 null 귀하의 경우, 그것은 0

+0

감사합니다. '너무 많이! ;-) – Donovant

+0

결과가없는 경우 'null'출력을 나타내는 mysql 표준은 '0'이 아닙니다. 'Nanne'이 말하는 것처럼 'COALESCE (MAX (number), 0)'를 사용할 수 있습니다. –

12

유착 작동 당신에게주지를, 하지만 IFNULL은 나에게 분명해 보입니다. 첫 번째 표현식이 NULL이 아닌 경우

IFNULL(MAX(number), 0) 

, IFNULL()는 그렇지 않으면 두 번째 매개 변수를 반환 표현 자체를 반환합니다. IFNULL()은 사용 된 컨텍스트에 따라 숫자 또는 문자열 값을 반환합니다.