MySQL의 SUM 함수를 사용하여 NULL 대신 '0' 검색
MySQL에서 SUM 함수를 사용하여 열에서 일치하는 값이 없으면 함수는 NULL을 반환합니다. 이러한 경우에 함수가 0을 반환하도록 하려는 경우 이 동작은 문제가 될 수 있습니다.
이 문제를 극복하기 위해 COALESCE 함수를 사용할 수 있습니다. COALESCE는 두 개의 인수를 사용합니다. 첫 번째 인수는 평가하려는 표현식이고, 두 번째 인수는 첫 번째 인수가 NULL인 경우 반환하려는 값입니다.
SUM 함수의 경우 다음 구문을 사용할 수 있습니다. 사용:
<code class="sql">SELECT COALESCE(SUM(Column_1), 0) FROM Table WHERE Column_2 = 'Test'</code>
이 예에서는 SUM(Column_1) 식이 평가됩니다. Column_2에 대해 일치하는 값이 없으면 식은 NULL을 반환합니다. 그러나 COALESCE 함수는 NULL 대신 지정된 기본값인 0을 반환합니다.
이 접근 방식을 사용하면 일치하는 값이 없더라도 SUM 함수가 항상 숫자 값을 반환합니다. 결과적으로 NULL 값을 처리할 때 발생할 수 있는 잠재적인 문제를 피할 수 있습니다.
추가 정보:
COALESCE의 작동 방식을 보다 포괄적으로 이해하려면, 다음 시나리오를 생각해 보세요. 각각 서로 다른 데이터 유형을 가진 세 개의 테이블이 생성되었습니다.
이러한 테이블에 대해 다음 쿼리를 실행하면 COALESCE의 기능을 보여줍니다.
<code class="sql">SELECT table_name, description, expected_sum, COALESCE(SUM(val), 0) AS actual_sum FROM ( SELECT 'foo' AS table_name, 'mixed null/non-null' AS description, 21 AS expected_sum, val FROM Table1 UNION ALL SELECT 'bar' AS table_name, 'all non-null' AS description, 21 AS expected_sum, val FROM Table2 UNION ALL SELECT 'baz' AS table_name, 'all null' AS description, 0 AS expected_sum, val FROM Table3 ) AS subquery GROUP BY table_name, description, expected_sum ORDER BY table_name, description;</code>
이 쿼리의 결과는 데이터 유형에 관계없이 COALESCE가 SUM 함수가 숫자 값을 반환하도록 보장하여 MySQL 애플리케이션에서 보다 유연하고 예측 가능한 데이터 처리가 가능하다는 것을 보여줍니다.
위 내용은 MySQL의 SUM 함수가 NULL 대신 \'0\'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!