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

From Jean-Luc Lachance
Subject Re: order by date desc but NULLs last
Date
Msg-id 3E47F056.DE8707E2@nsd.ca
Whole thread Raw
In response to order by date desc but NULLs last  ("A.M." <agentm@cmu.edu>)
Responses Re: order by date desc but NULLs last  ("Ross J. Reedstrom" <reedstrm@rice.edu>)
List pgsql-sql
Why not try the obvious first?

order by gradedtime is null, gradedtime desc;


"Ross J. Reedstrom" wrote:
> 
> 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_gradedmaterial
>  WHERE gradedmaterialid=3 and studentid=102 order by
>  coalesce(gradedtime,'-infinity') desc;
> 
> Ross
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: problems with date and interval queries.
Next
From: "Ross J. Reedstrom"
Date:
Subject: Re: order by date desc but NULLs last