SQL : 하나의 열에 null 값이있을 때 3 개의 열을 더 많이?
SELECT
sum(TotalHoursM)
+ (TotalHoursT)
+ (TotalHoursW)
+ (TotalHoursTH)
+ (TotalHoursF)
AS TOTAL
FROM LeaveRequest
열에 0 값이 있으면 괜찮습니다. 제 생각에는 Null 값에 문제가있는 것입니다.이 경우에는 IsNull(Column, 0)
항상 최소 0인지 확인하는 데 있습니다.
ISNULL
함수를 해결 이전 답변 은 MS Sql Server에 해당됩니다. 이 COALESCE
기능은 SQL Server가 작동합니다. 그러나 표준 SQL 데이터베이스 시스템 작동합니다. 주어진 예에서 :
SELECT sum(COALESCE(TotalHoursM,0))
+ COALESCE(TotalHoursT,0)
+ COALESCE(TotalHoursW,0)
+ COALESCE(TotalHoursTH,0)
+ COALESCE(TotalHoursF,0) AS TOTAL FROM LeaveRequest
이 ISNULL
함수의 이름이라는 유일한 차이점은 제외하고는 솔루션과 동일 합니다. 둘 다 SQL Server에서 작동하지만 COALESCE
ANSI 표준이며 ISNULL
입니다. 또한 COALESCE
더 유연합니다. ISNULL
두 개의 매개 변수에서만 작동합니다. 첫 번째 번째 매개 변수가 NULL이면 두 번째 매개 변수의 값이 리턴되고있는 언어 첫 번째 변수의 값이됩니다. COALESCE는 2에서 'n'( 'n'의 한계를 초과)하는 변수를 사용하고
NULL
. 이 아닌 첫 번째 회차 변수의 값을 리턴합니다 . 한정 변수가 두 개 뿐인 경우 효과는 ISNULL
.
SELECT sum(isnull(TotalHoursM,0))
+ isnull(TotalHoursT,0)
+ isnull(TotalHoursW,0)
+ isnull(TotalHoursTH,0)
+ isnull(TotalHoursF,0)
AS TOTAL FROM LeaveRequest
참고로 MySQL에 해당하는 문은 IFNull (Column, 0) 입니다.
이 명령문은 널이 아니면 열 값으로 평가되고, 이름 0으로 평가됩니다.
다음을 사용할 수 있습니다 ISNULL
.
ISNULL(field, VALUEINCASEOFNULL)
TotalHoursM 아니라 모든 열 ( "sum 3 columns")을 합산하려는 것처럼 보 다음을 시도합니다.
SELECT
SUM( ISNULL(TotalHoursM ,0)
+ ISNULL(TotalHoursT ,0)
+ ISNULL(TotalHoursW ,0)
+ ISNULL(TotalHoursTH ,0)
+ ISNULL(TotalHoursF ,0)
) AS TOTAL
FROM LeaveRequest
당신은 또한 사용할 수 있습니다 nvl(Column,0)
나는 시도 할 것이다 :
select sum (case when TotalHousM is null then 0 else TotalHousM end)
+ (case when TotalHousT is null then 0 else TotalHousT end)
+ (case when TotalHousW is null then 0 else TotalHousW end)
+ (case when TotalHousTH is null then 0 else TotalHousTH end)
+ (case when TotalHousF is null then 0 else TotalHousF end)
as Total
From LeaveRequest
null 값을 피하십시오. IsNull (열, 1)을 사용하십시오.
참고 URL : https://stackoverflow.com/questions/1088648/sql-sum-3-columns-when-one-column-has-a-null-value
'ProgramingTip' 카테고리의 다른 글
.NET 코어 MVC 컨트롤러의 단위 테스트를 위해 HttpContext를 모의 포장합니까? (0) | 2020.11.19 |
---|---|
Python 라이브러리 경로 (0) | 2020.11.19 |
ArrayList에는 대소 문자 구분이 포함됩니다. (0) | 2020.11.19 |
뒤로 버튼이 대화 상자를 닫지 방지 방지 (0) | 2020.11.19 |
기본 CSS- 상단에 반투명 DIV가있는 DIV를 기계하는 방법 (0) | 2020.11.19 |