Re: An order by question

Поиск
Список
Период
Сортировка
От Michael Fuhr
Тема Re: An order by question
Дата
Msg-id 20040201133451.GA13002@winnie.fuhr.org
обсуждение исходный текст
Ответ на An order by question  (David Arnold <darnold@northcoast.com>)
Ответы Re: An order by question  (Tomasz Myrta <jasiek@klaster.net>)
Список pgsql-sql
> I need a little help on a sorting problem. Imagine a table, call it
> records, that has fields:
> 
> lastName
> firstName
> term
> 
> I want to sort the records by last name, then first name, and finally by
> term. This almost does what I want:
> 
> select * from records order by lastName, firstName, term;
> 
> However, the possible values for term are:
> 
> 2002F
> 2003S
> 2003X
> 2003F
> 
> Where F is for fall, S for spring, and X for summer session. Thus, a
> straight alphabetical sort doesn't give me what I want. If the year is the
> same, then I want a sort with S, then X, then F for identical year.

Consider storing the session in a separate field and assigning each
session a value that collates in the order you want.

Here's a way to order the sessions using their current format:

SELECT *
FROM records
ORDER BY lastName,        firstName,        SUBSTRING(term FROM 1 FOR 4),        CASE SUBSTRING(term FROM 5)
WHEN'S' THEN 1          WHEN 'X' THEN 2          ELSE 3        END;
 

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/


В списке pgsql-sql по дате отправления:

Предыдущее
От: Stephan Szabo
Дата:
Сообщение: Re: Sometimes referential integrity seems not to work
Следующее
От: Tomasz Myrta
Дата:
Сообщение: Re: An order by question