Re: ORDER BY CASE ... - Mailing list pgsql-sql

From Bruno Wolff III
Subject Re: ORDER BY CASE ...
Date
Msg-id 20060220173326.GA29604@wolff.to
Whole thread Raw
In response to Re: ORDER BY CASE ...  (Mario Splivalo <mario.splivalo@mobart.hr>)
List pgsql-sql
On Mon, Feb 13, 2006 at 22:28:38 +0100, Mario Splivalo <mario.splivalo@mobart.hr> wrote:
> Can't do so, because receiving_time is timestamptz, and "from" is
> varchar. There:
> 
> pulitzer2=# select id, "from", receiving_time from messages order by
> case when 2=3 then "from" else receiving_time end desc limit 5;
> ERROR:  CASE types timestamp with time zone and character varying cannot
> be matched
> 
> I need to explicitly cast receiving_time into varchar.
> 
> What I would like to include ASC/DESC into CASE, but I guess that's not
> possible.

If you describe what order you are trying to get we might be able to give
you a more specific suggestion.

It looks like you are trying to sort on different column numbers based
on whether or not two other column numbers (that weren't shown) are equal.
(The syntax you are using for doing this isn't correct, but it is the only
thing that seems to make sense.)

Since columns 2 and 3 aren't really comparable, how were you expecting
the rows for the two cases to be interspersed? Just converting a timestamp
to a string seem like it wouldn't be the right answer.


pgsql-sql by date:

Previous
From: Patrick JACQUOT
Date:
Subject: Re: Need help: Find dirty rows, Update, Delete SQL
Next
From: "Pedro B."
Date:
Subject: Re: Given 02-01-2006 to 02-28-2006, output all days.