2010-08-06 4 views
4

Donc, si j'avais une table dans ma base de données avec les valeursNull comme Max

1 
2 
3 
4 
NULL 

J'exécuté la requête

SELECT MAX(col1) FROM <table> 

Je reçois 4. Est-il possible de changer cette Null serait-elle traitée comme le maximum pour s'opposer au minimum?

Merci!

Répondre

6
SELECT MAX(ISNULL(col1, 2147483647)) FROM <table> 

[2147483647 = 2^31 - 1]

+0

je peux obtenir que travailler dans mon code, mais cela actuall RETOURNERAIT 2147483647 s'il y a un présent nulle, toute façon d'obtenir nul? –

+0

Juste ajouter une déclaration 'if' autour de la déclaration' MAX (.. ', en retournant 2147483647 de nouveau en null – Tobiasopdenbrouw

+0

Bien sûr! Je blâme cette deuxième question sur elle étant vendredi! merci –

1
 SELECT MAX(ISNULL(col1, YouBiggestNumber)) FROM <table> 
2

Tout comme une variante, vous pouvez le faire sur Oracle.

SELECT * 
    FROM (SELECT col1 
      FROM <table> 
      ORDER BY col1 DESC NULLS FIRST 
     ) 
WHERE rownum = 1 

(OP n'a pas spécifié de saveur particulière de la base de données)

+0

Doh, comme les autres l'ont deviné était MSSql mais je suis sûr que cela aidera les futurs –