82 Stimmen

SELECT max(x) gibt null zurück; wie kann ich erreichen, dass es 0 zurückgibt?

Wie kann man bei der Ausführung des folgenden Befehls 0 statt null zurückgeben?

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

(Unter der Annahme, dass es keine Zeile mit XID=1 gibt)

114voto

HLGEM Punkte 91543

または

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

88voto

Nestor Punkte 13240

In SQL 2005 / 2008:

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

30voto

Greg Punkte 306033

Etwa so (für MySQL):

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

Für MSSQL ersetzen Sie IFNULL con ISNULL oder für die Verwendung durch Oracle NVL

13voto

Mark Schultheiss Punkte 30349

Sie können auch COALESCE ( expression [ ,...n ] ) verwenden - gibt das erste Nicht-Null-Like zurück:

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

5voto

Jim Punkte 81

Oracle wäre

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X