Thread: changing null-values' sort order
hi list
coming from the MS-SQL Server world, we're migrating our applications slowly to pgsql 8.1. now we thumbled on a problem with different sort-order behaviours:
we got a table with dated records:
table: votes (v_userid, v_date)
the v_date field can either be null or a date in the past. in mssql, sorting the table to list records in descending date-order
select v_date, v_userid from votes order by v_date desc
produces a list where first the records with dates are listed, and then the ones with nulls. in pgsql, the null-records are listed first before the date-records... how can this behaviour be changed?
mssql:
--------
2005-11-05 3
2005-11-01 4
2005-09-10 1
null 2
null 5
pgsql:
--------
null 2
null 5
2005-11-05 32005-11-01 4
2005-09-10 1
thanks in advance,
thomas
unfortunately, standard 'nulls first/last' isn't supported yet. to change behaviour you should use following statement: select v_date, v_userid from votes order by v_date is not null desc, v_date desc or, something like this: select v_date, v_userid from votes order by coalesce(v_date, XXX) desc where XXX is substituted by the date value that is smaller than any other used in your table On 20/11/05, me@alternize.com <me@alternize.com> wrote: > > hi list > > coming from the MS-SQL Server world, we're migrating our applications slowly > to pgsql 8.1. now we thumbled on a problem with different sort-order > behaviours: > > we got a table with dated records: > table: votes (v_userid, v_date) > > the v_date field can either be null or a date in the past. in mssql, sorting > the table to list records in descending date-order > > select v_date, v_userid from votes order by v_date desc > > produces a list where first the records with dates are listed, and then the > ones with nulls. in pgsql, the null-records are listed first before the > date-records... how can this behaviour be changed? > > mssql: > -------- > 2005-11-05 3 > 2005-11-01 4 > 2005-09-10 1 > null 2 > null 5 > > > pgsql: > -------- > > null 2 > null 52005-11-05 3 > 2005-11-01 4 > 2005-09-10 1 > > thanks in advance, > thomas -- Best regards, Nikolay