Thread: Order By Question

Order By Question

From
Tristan Colson
Date:
This seems like the answer must be pretty easy, but I can't think of it:

In the following statement:

select field1 from my_table where field2 in (3, 1, 2);

How can I modify this statement so that the record are returned in the
order of first those records having field2 = 3, then field2 = 1, then
field2 = 2.
As it stands, I am getting them returned in the order of the value of
field1.



Re: Order By Question

From
"Prasanth Kumar"
Date:
<snip>
> This seems like the answer must be pretty easy, but I can't think of it:
>
> In the following statement:
>
> select field1 from my_table where field2 in (3, 1, 2);
>
> How can I modify this statement so that the record are returned in the
> order of first those records having field2 = 3, then field2 = 1, then
> field2 = 2.
> As it stands, I am getting them returned in the order of the value of
> field1.
>
<snip>
One way is to have a priority table where each value is mapped to its
associated priority and then you do a join against this table and order by
the priority value instead.

So you might have a table like follows:

priority    value
1             3
2             1
3             2

--
Prasanth Kumar
kumar1@home.com