UFO ET IT

SELECT max (x)가 null을 반환합니다.

ufoet 2020. 11. 25. 21:44
반응형

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


다음 명령을 실행할 때 null 대신 0을 반환하는 방법 :

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

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


SQL 2005/2008 :

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

또는:

SELECT coalesce(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 (expression [, ... 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

반응형