2012-07-04 16 views
10

Eventuali duplicati:
Case Order by using NullSQL Server 2005: Ordine con valori NULL alla fine

Sto cercando di ottenere un elenco di record ordinati da un campo "ordernum". Il campo ordernum è un campo int. Questo campo inizia come NULL finché non viene impostato da un utente. Vorrei che le voci NULL appaiano alla fine dell'elenco.

Sto costruendo una query come segue:

select *, case when (ordernum is null) then [largestInt] else ordernum end as newordernum 
from tableName 
order by newordernum 

So che potrei inserire il valore per il più grande possibile per int [largestInt], ma vorrei sostituire [largestInt] con una variabile. È possibile?

risposta

25

Ho trovato un modo per ordinare valori NULL in basso.

http://sqlblog.com/blogs/denis_gobo/archive/2007/10/19/3048.aspx

soddisfa le mie esigenze abbastanza bene. La mia domanda è ora:

select * 
from tableName 
order by case when ordernum is null then 1 else 0 end, ordernum 
+3

Questo è il modo giusto per farlo. Ma trovo strano che la tua risposta sia stata pubblicata quasi nello stesso momento in cui la tua domanda – Lamak

+0

stavo cercando su Google allo stesso tempo. È davvero difficile cercare cose come "max int" senza ottenere la funzione di aggregazione. È possibile pubblicare una domanda con risposta allo stesso tempo, che è quello che ho fatto. :) – dangowans

+3

So che è possibile, nessun problema con quello. Ma questa domanda è in realtà un duplicato a cui è stata data risposta molte volte qui su SO, quindi una rapida ricerca qui avrebbe restituito la stessa cosa – Lamak