On 3/14/07, Pablo Barrón <[EMAIL PROTECTED]> wrote:
 Hi!

 I'm trying to order a list in which the first parameter to order is a
specific field, and the second should vary depending on a specific
condition. More explicit, I would like to do something like:

 - ORDER BY a.column1, [b.column2 if c.value != 19 || c.column2 if
c.value==19]

 That is to say, use a column if a value on each row isn't 19, OR use a
different column if it isn't. How could I solve this? I've got to have a
global order over my query, so I cannot separate it into two queries, etc
:-?

 Thank you!

SELECT   (...)
ORDER BY a.column1, CASE
          WHEN c.VALUE <> 19
            THEN b.column2
          ELSE c.column2
        END;

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to