2010-07-09 3 views
34

나는 내가 다음 선택이MySQL의 IFNULL는

가 있다는 것이다 필드 B 것 null의 경우는 필드 a를 확인 있도록이

IFNULL(field_a,field_a,feild_b) 

같은 선택의 조건으로하고자하는 선택 문이 가능하니?

답변

68

사용 COALESCE :

SELECT COALESCE(field_a, field_b) 

COALESCE 왼쪽에서 오른쪽으로 열 처리, 지정된 컬럼의리스트로부터 상기 제 널이 아닌 값을 반환하는 ANSI 표준 함수이다. 따라서 예에서 field_a이 null이면 field_b 값이 표시됩니다. 그러나이 C 럼은 지정된 C 럼의 널 (NULL)이 아닌 값이 없으면 NULL을 리턴합니다.

그것은, (나는 4.1을 사용했습니다) MySQL을 지원하는 SQL 서버 (V2000부터), 오라클 9i의 +있어

...

+3

나뿐만 아니라 유착의 사용을 지원합니다. –

+0

기능이 어떻게 작동하는지에 대한 명확한 설명 ... 감사합니다! 깨진 링크를 업데이트했습니다. – Andrew

34

네,하지만 그것은 단지 두 개의 매개 변수입니다 :

IFNULL(field_a,field_b) 

하는 경우 field_a이 null이 아니면 반환됩니다. 그렇지 않으면 field_b이 반환됩니다.

은 참조 : IFNULL

28

하고 (다만 널 비교 유연)이 고양이를 피부 또 다른 방법 ...

select if(field_a is not null, field_a, field_b) from... 
+1

우수 답변. ('name is :', name) ''); ' – Apolo

+0

'select IFNULL (column,'default ')'도 작동합니다. 여기를 참조하십시오 : http://sqlfiddle.com/#!9/14b752/1/0 – Arda