복붙노트

[SQL] MySQL은 : 0에 NULL를 타입 캐스팅

SQL

MySQL은 : 0에 NULL를 타입 캐스팅

우리는 다음 표를 가정하자 (예를 들어, 내부는 문을 조인 여러 결과)

id | column_1 | column_2
------------------------
 1 |  1       | 
 2 |  2       | 2
 3 |          | 3

어떤 당신은 예를 들어 다음과 같은 문에서 얻을 수 있습니다 :

select a.id, t1.column_1, t2.column_2
from a
left join t1 on a.id = t1.id
left join t2 on a.id = t2.id

다음과 같이 지금, 나는 t1.column_1 및 t2.column_2을 요약하려는 경우

select 
    a.id, 
    t1.column_1, 
    t2.column_2,
    (t1.column_1 + t2.column_2) as cumulated
from a
left join t1 on a.id = t1.id
left join t2 on a.id = t2.id

다음과 같이 결과가 보일 것이다 :

id | column_1 | column_2 | cumulated
------------------------------------
 1 |  1       | NULL     | NULL
 2 |  2       | 2        | 4
 3 |  NULL    | 3        | NULL

내 질문은 기본적으로 : 방법이 몇 가지 계산을하기 위해 0으로 배역 NULL 거기에있다?

나는 CONVERT (t1.column_1, 서명) 및 (서명 등 t1.column_1) CAST를 시도하지만 NULL의 숙박에 NULL있다.

해결법

  1. ==============================

    1.사용 IFNULL (열, 0)는 0에 열 값을 변환합니다. 대안 적으로, 병합 기능을 제외하고 동일한 것을 수행한다 (1) COALESCE는 IFNULL는 ANSI 호환되지 않고, 그리고 (2) COALESCE 컬럼 / 값의 임의의 수를 취하여 전달 된 최초의 비 - 널 (null) 값을 리턴 .

    사용 IFNULL (열, 0)는 0에 열 값을 변환합니다. 대안 적으로, 병합 기능을 제외하고 동일한 것을 수행한다 (1) COALESCE는 IFNULL는 ANSI 호환되지 않고, 그리고 (2) COALESCE 컬럼 / 값의 임의의 수를 취하여 전달 된 최초의 비 - 널 (null) 값을 리턴 .

  2. from https://stackoverflow.com/questions/1441333/mysql-typecasting-null-to-0 by cc-by-sa and MIT license