| From: | "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu> |
|---|---|
| To: | "A(dot)M(dot)" <agentm(at)cmu(dot)edu> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: order by date desc but NULLs last |
| Date: | 2003-02-09 23:12:04 |
| Message-ID: | 20030209231204.GB11550@wallace.ece.rice.edu |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | 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_gradedmaterial
WHERE gradedmaterialid=3 and studentid=102 order by
coalesce(gradedtime,'-infinity') desc;
Ross
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tomasz Myrta | 2003-02-09 23:12:11 | Re: order by date desc but NULLs last |
| Previous Message | Ross J. Reedstrom | 2003-02-09 22:56:15 | Re: referencing column names properly |