SELECT max(x)返回null; 怎么能让它返回0?

Phi*_*enn 62 sql sql-server

运行以下命令时,如何返回0而不是null:

SELECT MAX(X) AS MaxX
FROM tbl
WHERE XID = 1
Run Code Online (Sandbox Code Playgroud)

(假设没有XID = 1的行)

HLG*_*GEM 92

要么:

SELECT coalesce(MAX(X), 0) AS MaxX
FROM tbl
WHERE XID = 1
Run Code Online (Sandbox Code Playgroud)


Nes*_*tor 70

在SQL 2005/2008中:

SELECT ISNULL(MAX(X), 0) AS MaxX
FROM tbl WHERE XID = 1
Run Code Online (Sandbox Code Playgroud)


Gre*_*reg 26

像这样(对于MySQL):

SELECT IFNULL(MAX(X), 0) AS MaxX
FROM tbl
WHERE XID = 1
Run Code Online (Sandbox Code Playgroud)

对于MSSQL替换IFNULLISNULL或用于Oracle使用NVL


Mar*_*iss 10

你也可以使用COALESCE(表达式[,... n]) - 首先返回非null,如:

SELECT COALESCE(MAX(X),0) AS MaxX
FROM tbl
WHERE XID = 1
Run Code Online (Sandbox Code Playgroud)


小智 5

甲骨文会的

SELECT NVL(MAX(X), 0) AS MaxX
FROM tbl
WHERE XID = 1;
Run Code Online (Sandbox Code Playgroud)