Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL COALESCE() 함수를 MySQL SUM() 함수와 함께 사용하여 출력을 사용자 정의하는 방법은 무엇입니까?


MySQL SUM() 함수에 값이 없고 인수가 없는 열이 있으면 출력으로 0이 아닌 NULL을 반환합니다. 그러나 이 출력을 출력으로 0을 표시하도록 사용자 정의하려면 두 개의 인수를 받아들이고 첫 번째 인수가 NULL이면 두 번째 인수를 반환하고, 그렇지 않으면 첫 번째 인수를 반환하는 MySQL COALESCE() 함수를 사용할 수 있습니다. 이를 설명하기 위해 다음 데이터가 있는 'Tender' 테이블의 예를 살펴보겠습니다. -

mysql> Select * from tender;

+----+---------------+--------------+
| Sr | CompanyName   | Tender_value |
+----+---------------+--------------+
| 1  | Abc Corp.     | 250.369003   |
| 2  | Khaitan Corp. | 265.588989   |
| 3  | Singla group. | 220.255997   |
| 4  | Hero group.   | 221.253006   |
| 5  | Honda group   | NULL         |
+----+---------------+--------------+

5 rows in set (0.00 sec)

MySQL SUM() 함수는 컬럼에 값이 없기 때문에 'Honda Group'에서 인용한 총 입찰가를 찾으려고 하면 NULL을 반환합니다.

mysql> Select SUM(Tender_value) From Tender Where CompanyName = 'Honda Group';

+-------------------+
| SUM(Tender_value) |
+-------------------+
|              NULL |
+-------------------+

1 row in set (0.00 sec)

그러나 이 출력을 NULL에서 0으로 사용자 정의하려는 경우 SUM()과 함께 COALESCE 함수를 사용하여 'Honda Group'에서 인용한 총 입찰 가치를 찾을 수 있다고 가정합니다.

mysql> Select COALESCE(SUM(Tender_value),0) From Tender Where CompanyName = 'Honda Group';

+-------------------------------+
| COALESCE(SUM(Tender_value),0) |
+-------------------------------+
|                      0.000000 |
+-------------------------------+

1 row in set (0.00 sec)

이제 MySQL SUM() 함수는 '이름' 열에 없는 이름인 'Mohan'이 입력한 총 페이지 수를 찾기 위해 SUM()과 함께 COALESCE 함수를 사용할 때 0을 반환합니다. -

mysql> SELECT COALESCE(SUM(daily_typing_pages),0) FROM employee_tbl WHERE Name = ‘Mohan’;

+-------------------------+
| SUM(daily_typing_pages) |
+-------------------------+
|                       0 |
+-------------------------+

1 row in set (0.00 sec)

위의 결과 세트에서 MySQL SUM() 함수는 데이터 유형에 관계없이 열에 값이 없으면 NULL을 반환한다는 것이 분명합니다.