SQL 함수에서 단일 값을 가져올 때 어떻게 NULL을 0으로 변경할 수 있습니까?
두 날짜 사이의 모든 항목의 가격을 계산하는 쿼리가 있습니다. 다음은 select 문입니다.
SELECT SUM(Price) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
모든 테이블이 올바르게 설정되었다고 가정 할 수 있습니다.
두 날짜 중에서 선택하고 해당 날짜 범위 내에 항목이 없으면 함수는 0이 아닌 TotalPrice로 NULL을 반환합니다.
레코드를 찾을 수없는 경우 NULL이 아닌 0이 반환되는지 어떻게 확인할 수 있습니까?
대부분의 데이터베이스 서버에는 널이 아닌 첫 번째 인수를 리턴 하는 COALESCE 함수가 있으므로 다음이 원하는 작업을 수행해야합니다.
SELECT COALESCE(SUM(Price),0) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
[편집하다]
"일치하는 행이없는 경우 COALESCE / ISNULL은 여전히 NULL을 반환합니다"에 대한 많은 논의가있는 것처럼 보이기 때문에 명확하게하기 위해이 쿼리를 그대로 SQL Server에 직접 복사하여 붙여 넣을 수 있습니다.
SELECT coalesce(SUM(column_id),0) AS TotalPrice
FROM sys.columns
WHERE (object_id BETWEEN -1 AND -2)
where 절은 sys.columns의 모든 행을 고려 대상에서 제외하지만 'sum'연산자는 여전히 null 인 단일 행을 반환하여 수정 사항을 0이있는 단일 행으로 통합합니다.
이것이 설명하는 데 도움이되기를 바랍니다.
SELECT ISNULL(SUM(Price), 0) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
그게 트릭을해야합니다.
SELECT 0+COALESCE(SUM(Price),0) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
SELECT COALESCE(
(SELECT SUM(Price) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate))
, 0)
테이블의 응답에 행이 있으면 SUM (Price)을 반환합니다. SUM이 NULL이거나 행이 없으면 0을 반환합니다.
COALESCE (SUM (Price), 0)은 행이없는 경우 MSSQL에서 작동하지 않습니다.
편집 : 다른 사람들이 나를 이겼 던 것 같습니다 haha
답을 찾았습니다.
ISNULL()
널값이있을 때 수행 할 작업을 결정합니다.
이 경우 내 함수는 null 값을 반환하므로 대신 반환 할 0을 지정해야했습니다.
SELECT ISNULL(SUM(Price), 0) AS TotalPrice
FROM Inventory
WHERE (DateAdded
BETWEEN @StartDate AND @EndDate)
당신은 사용할 수 있습니다
SELECT ISNULL(SUM(ISNULL(Price, 0)), 0)
.
나는 그것이 효과가있을 것이라고 99 % 확신한다.
ORACLE / PLSQL :
NVL 기능
SELECT NVL(SUM(Price), 0) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
이 SQL 문은 null 값을 반환 0
하면 반환 됩니다 SUM(Price)
. 그렇지 않으면 SUM(Price)
값을 반환합니다 .
이를 수행하는 가장 쉬운 방법은 결과에 0을 추가하는 것입니다.
즉
$A=($row['SUM'Price']+0);
echo $A;
도움이 되었기를 바랍니다!!
'Programing' 카테고리의 다른 글
안드로이드의 이해 (0) | 2020.12.30 |
---|---|
Rust에서 시스템 명령을 호출하고 출력을 캡처하려면 어떻게해야합니까? (0) | 2020.12.30 |
자바 스크립트지도에 동적으로 데이터 추가 (0) | 2020.12.29 |
: after and : before css pseudo elements hack for IE 7 (0) | 2020.12.29 |
배열 벡터로 작업하는 올바른 방법 (0) | 2020.12.29 |