itsource

SELECT max(x)가 null을 반환합니다. 0을 반환하려면 어떻게 해야 합니까?

mycopycode 2023. 6. 21. 22:35
반응형

SELECT max(x)가 null을 반환합니다. 0을 반환하려면 어떻게 해야 합니까?

다음 명령을 실행할 때 null 대신 0을 반환하는 방법은 무엇입니까?

SELECT MAX(X) AS MaxX
FROM tbl
WHERE XID = 1

(XID=1인 행이 없다고 가정)

또는:

SELECT coalesce(MAX(X), 0) AS MaxX
FROM tbl
WHERE XID = 1

SQL 2005/2008의 경우:

SELECT ISNULL(MAX(X), 0) AS MaxX
FROM tbl WHERE XID = 1

다음과 같이(MySQL의 경우):

SELECT IFNULL(MAX(X), 0) AS MaxX
FROM tbl
WHERE XID = 1

MSSQL의 경우 대체IFNULL와 함께ISNULL또는 Oracle 사용을 위한NVL

COALESCE(식 [, ...n ] )를 사용할 수도 있습니다. - 다음과 같이 null이 아닌 첫 번째를 반환합니다.

SELECT COALESCE(MAX(X),0) AS MaxX
FROM tbl
WHERE XID = 1

오라클은

SELECT NVL(MAX(X), 0) AS MaxX
FROM tbl
WHERE XID = 1;

OLEDB의 경우 다음 쿼리를 사용할 수 있습니다.

select IIF(MAX(faculty_id) IS NULL,0,MAX(faculty_id)) AS max_faculty_id from faculties;

거기서 IFNULL이 작동하지 않기 때문입니다.

사용 중인 제품에 따라 다르지만 대부분은 다음과 같은 기능을 지원합니다.

SELECT IFNULL(MAX(X), 0, MAX(X)) AS MaxX FROM tbl WHERE XID = 1

또는

SELECT CASE MAX(X) WHEN NULL THEN 0 ELSE MAX(X) FROM tbl WHERE XID = 1

언급URL : https://stackoverflow.com/questions/1688715/select-maxx-is-returning-null-how-can-i-make-it-return-0

반응형