Thanks Nathan for the quick reply. will try this and report back.. :)
Regards,
Ravi

On Thu, Jul 2, 2009 at 11:51 PM, Nathan Sullivan <nsulli...@cappex.com>wrote:

> Ravindra,
>
> Sorry, made a mistake in my last post.  Meant to write:
>
> order by
> case
> when (date_field_3 between date(current_timestamp) and
> date(date_add(current_timestamp, interval 2 day))) then 1
> when (date_field_2 between date(current_timestamp) and
> date(date_add(current_timestamp, interval 2 day))) then 2
> when (date_field_1 between date(current_timestamp) and
> date(date_add(current_timestamp, interval 2 day))) then 3
> else 4
> end, date_field_3, date_field_2, date_field_1;
>
> -----Original Message-----
> From: Nathan Sullivan
> Sent: Thursday, July 02, 2009 1:07 PM
> To: 'Ravindra Harige'; mysql@lists.mysql.com
> Subject: RE: Adhoc sorting requirement
>
> Ravindra,
>
> Maybe something like this?
>
> order by
> case
> when (date_field_1 between date(current_timestamp) and
> date(date_add(current_timestamp, interval 2 day))) then 1
> when (date_field_2 between date(current_timestamp) and
> date(date_add(current_timestamp, interval 2 day))) then 2
> when (date_field_3 between date(current_timestamp) and
> date(date_add(current_timestamp, interval 2 day))) then 3
> else 4
> end, date_field_3, date_field_2, date_field_1;
>
>
> Hope it helps..
>
> Regards,
> Nathan
>
> -----Original Message-----
> From: Ravindra Harige [mailto:ravindra.har...@gmail.com]
> Sent: Thursday, July 02, 2009 12:18 PM
> To: mysql@lists.mysql.com
> Subject: Adhoc sorting requirement
>
> Hi,
>
> I have a very ad hoc sorting requirement and would like to know how this
> can
> be achieved.
> The requirement is as follows:
> I have a table (of say 100 records) with 3 DATE fields:
> date_field_1 , date_field_2 , date_field_3
>
> I have a date range, for eg. from (today) to (today+2) and
> Each one of the date_fields has a priority
> date_field_3 : First priority
> date_field_2 : Second priority
> date_field_1: Third priority
>
> Now, I want the query result to be sorted and shown in the following order-
> records whose
> 1.(date_field_3) is in date range [from (today) to (today+2) ]
>
> 2.(date_field_2) is in date range [from (today) to (today+2) ]
>
> 3.(date_field_1) is in date range [from (today) to (today+2) ]
>
> and then rest of the records (ie not in range) should be ordered according
> to
>
> date_field_3,
> date_field_2,
> and date_field_1
>
> Any help on this will be appreciated :)
>
> Thanks.
>

Reply via email to