Re: order by date desc but NULLs last - Mailing list pgsql-sql

From Ross J. Reedstrom
Subject Re: order by date desc but NULLs last
Date
Msg-id 20030209231204.GB11550@wallace.ece.rice.edu
Whole thread Raw
In response to order by date desc but NULLs last  ("A.M." <agentm@cmu.edu>)
List pgsql-sql
On Sun, Feb 09, 2003 at 05:29:29PM -0500, A.M. wrote:
> I have a simple query that sorts by descending date but the NULL dates 
> show up first. Is there a way I can sort so they come last without 
> sorting ascending?
> 
> SELECT submittime,score,gradedtime FROM student_gradedmaterial WHERE 
> gradedmaterialid=3 and studentid=102 order by gradedtime desc;
> 
>      submittime      | score |         gradedtime
> ---------------------+-------+----------------------------
>  2003-01-30 22:56:38 |       |
>  2003-01-31 03:42:29 |    99 | 2003-02-06 14:21:43.043587
> 
> but what I want is all the graded items first in gradedtime desc and 
> NULL afterwards. I do need to keep the NULL score rows. (So I get the 
> latest submitted grade for the assignment but also any ungraded 
> submission information.)


You need to ORDER BY a _function_ of the gradedtime column, substituting
an extreme value for NULL. Try this:
SELECT submittime,score,gradedtime FROM student_gradedmaterialWHERE gradedmaterialid=3 and studentid=102 order
bycoalesce(gradedtime,'-infinity')desc;
 

Ross


pgsql-sql by date:

Previous
From: "Ross J. Reedstrom"
Date:
Subject: Re: referencing column names properly
Next
From: Abdul Wahab Dahalan
Date:
Subject: How to delete duplicate record