[SQL] SQL : 하나 개의 컬럼이 널 (null) 값이 합계 3 열?
SQLSQL : 하나 개의 컬럼이 널 (null) 값이 합계 3 열?
SELECT
sum(TotalHoursM)
+ (TotalHoursT)
+ (TotalHoursW)
+ (TotalHoursTH)
+ (TotalHoursF)
AS TOTAL
FROM LeaveRequest
해결법
-
==============================
1.열이 0 값이있는 경우, 당신은 정상입니다, 내 생각 엔 당신이 NULL 값에 문제가 있다는 것입니다,이 경우 당신은 최소한 항상 0입니다 보장하기 위해 ISNULL (열, 0)를 사용해야합니다.
열이 0 값이있는 경우, 당신은 정상입니다, 내 생각 엔 당신이 NULL 값에 문제가 있다는 것입니다,이 경우 당신은 최소한 항상 0입니다 보장하기 위해 ISNULL (열, 0)를 사용해야합니다.
-
==============================
2.ISNULL 함수를 사용하여 이전 답변은 MS SQL Server의 경우 정확합니다. 병합 기능은 SQL 서버에서 작동합니다. 뿐만 아니라 표준 SQL 데이터베이스 시스템에서 작동합니다. 주어진 예에서 :
ISNULL 함수를 사용하여 이전 답변은 MS SQL Server의 경우 정확합니다. 병합 기능은 SQL 서버에서 작동합니다. 뿐만 아니라 표준 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은 없습니다. 또한, 유착은 더 유연하다. ISNULL은 두 개의 매개 변수와 함께 작동합니다. 첫 번째 매개 변수는 첫 번째의 다른 값 반환 다음 두 번째 매개 변수의 값이 반환됩니다 NULL이됩니다. COALESCE는 2 걸릴 것 'n'을 매개 변수 (I은 'N'의 한계를 모르는) 및 NULL이 아닌 첫 번째 매개 변수의 값을 반환합니다. 두 변수가 될 때 ISNULL 효과와 동일하다.
-
==============================
3.
SELECT sum(isnull(TotalHoursM,0)) + isnull(TotalHoursT,0) + isnull(TotalHoursW,0) + isnull(TotalHoursTH,0) + isnull(TotalHoursF,0)) AS TOTAL FROM LeaveRequest
-
==============================
4.그냥 참조를 위해, MySQL 용에 해당하는 문은 다음과 같습니다 IFNULL (열, 0).
그냥 참조를 위해, MySQL 용에 해당하는 문은 다음과 같습니다 IFNULL (열, 0).
이 문장은, 그렇지 않으면 0으로 평가, 열 값이 아니라면 널 (null)로 평가한다.
-
==============================
5.당신은 ISNULL을 사용할 수 있습니다 :
당신은 ISNULL을 사용할 수 있습니다 :
ISNULL(field, VALUEINCASEOFNULL)
-
==============================
6.당신 같은 외모, 그냥 TotalHoursM, 그래서이 시도하지 ( "합계 3 열"에서 유래 어디 잘 모르겠어요) SUM에 모든 열을 원하는 :
당신 같은 외모, 그냥 TotalHoursM, 그래서이 시도하지 ( "합계 3 열"에서 유래 어디 잘 모르겠어요) SUM에 모든 열을 원하는 :
SELECT SUM( ISNULL(TotalHoursM ,0) + ISNULL(TotalHoursT ,0) + ISNULL(TotalHoursW ,0) + ISNULL(TotalHoursTH ,0) + ISNULL(TotalHoursF ,0) ) AS TOTAL FROM LeaveRequest
-
==============================
7.또한 NVL 사용할 수 있습니다 (열, 0)
또한 NVL 사용할 수 있습니다 (열, 0)
-
==============================
8.나는 이것을 시도 할 것입니다 :
나는 이것을 시도 할 것입니다 :
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
-
==============================
9.당신은 널 (null) 값을 사용 ISNULL 피하려면 (열, 1)
당신은 널 (null) 값을 사용 ISNULL 피하려면 (열, 1)
from https://stackoverflow.com/questions/1088648/sql-sum-3-columns-when-one-column-has-a-null-value by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL의 INTO OUTFILE는 덮어 쓰기 파일을 기존의? (0) | 2020.06.29 |
---|---|
[SQL] SQL Server 2005의 날짜로 하루를 추가 DateAdd 함수를 사용하여 (0) | 2020.06.29 |
[SQL] 최대 절전 모드 기준으로 쿼리 ManyToMany 관계 (0) | 2020.06.29 |
[SQL] 트리거 오류 : 현재 트랜잭션은 커밋 할 수 없습니다 및 운영을 지원하지 수있는 로그 파일에 쓰기 (0) | 2020.06.29 |
[SQL] C #에서 SQL 서버에서 VARBINARY 데이터를 스트리밍 (0) | 2020.06.29 |