2009-11-06 9 views

Respuesta

52

En SQL 2005/2008:

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

gusta esta (para MySQL):

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

para MSSQL reemplazar IFNULL con ISNULL o para Oracle utilizar NVL

+0

Creo que te refieres ISNULL:) – AdaTheDev

+0

En SQL Server sería ISNULL. No sé si es un error tipográfico o un comando válido en otros dialectos SQL. – Konamiman

+1

El OP no especifica: MySQL usa IFNULL – Greg

2

depende de lo que el producto que está utilizando, pero la mayoría de apoyo algo así como

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

o

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

o:

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

+1 COALESCE cumple con SQL: 1992 – bobince

9

También puede usar COALESCE (expresión [, ... n]) - devuelve primero no nu te gusta:

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

Oracle sería

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

Para OLEDB puede utilizar esta consulta:

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

Como IFNULL no funciona allí

Cuestiones relacionadas