Обсуждение: ORDER BY 'DK', 'DE', DESC?

Поиск
Список
Период
Сортировка

ORDER BY 'DK', 'DE', DESC?

От
Victor Spång Arthursson
Дата:
Hi!

I would like to know if it's possible to give a priority order of how
to sort the returning rows?

Like for example to order every row with a field language = DK first,
then the rows with field language = *DE' and last the other languages,
ordered alphabetically…?

Sincerely

Victor


Re: ORDER BY 'DK', 'DE', DESC?

От
Stephan Szabo
Дата:
On Tue, 11 May 2004, [ISO-8859-1] Victor Spång Arthursson wrote:

> Hi!
>
> I would like to know if it's possible to give a priority order of how
> to sort the returning rows?
>
> Like for example to order every row with a field language = DK first,
> then the rows with field language = *DE' and last the other languages,
> ordered alphabetically…?

Well, I think you can do something like:

ORDER BY (language = 'DK'), (language = 'DE'), language

(or you could possibly condense the first two into one with case)

Re: ORDER BY 'DK', 'DE', DESC?

От
Adam Ruth
Дата:
On May 20, 2004, at 11:20 AM, Stephan Szabo wrote:

> On Tue, 11 May 2004, [ISO-8859-1] Victor Spång Arthursson wrote:
>
>> Hi!
>>
>> I would like to know if it's possible to give a priority order of how
>> to sort the returning rows?
>>
>> Like for example to order every row with a field language = DK first,
>> then the rows with field language = *DE' and last the other languages,
>> ordered alphabetically…?
>
> Well, I think you can do something like:
>
> ORDER BY (language = 'DK'), (language = 'DE'), language
>
> (or you could possibly condense the first two into one with case)

Due to the sorting of boolean values, you'd need:

ORDER BY language = 'DK' desc, language like '%DE' desc, language;

>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to
> majordomo@postgresql.org
>


Re: ORDER BY 'DK', 'DE', DESC?

От
Stephan Szabo
Дата:
On Thu, 20 May 2004, Adam Ruth wrote:

>
> On May 20, 2004, at 11:20 AM, Stephan Szabo wrote:
>
> > On Tue, 11 May 2004, [ISO-8859-1] Victor Spång Arthursson wrote:
> >
> >> Hi!
> >>
> >> I would like to know if it's possible to give a priority order of how
> >> to sort the returning rows?
> >>
> >> Like for example to order every row with a field language = DK first,
> >> then the rows with field language = *DE' and last the other languages,
> >> ordered alphabetically…?
> >
> > Well, I think you can do something like:
> >
> > ORDER BY (language = 'DK'), (language = 'DE'), language
> >
> > (or you could possibly condense the first two into one with case)
>
> Due to the sorting of boolean values, you'd need:
>
> ORDER BY language = 'DK' desc, language like '%DE' desc, language;

Yep, someday I'll remember that 0 is less than 1. ;)


Re: ORDER BY 'DK', 'DE', DESC?

От
Greg Stark
Дата:
Adam Ruth <aruth@intercation.com> writes:

> Due to the sorting of boolean values, you'd need:
>
> ORDER BY language = 'DK' desc, language like '%DE' desc, language;

Personally I find something like this clearer:

ORDER BY (CASE WHEN language = 'DK' THEN 1
               WHEN language like '%DE' THEN 2
               WHEN ...
               ELSE 5
               END
         )

--
greg

Re: ORDER BY 'DK', 'DE', DESC?

От
Adam Ruth
Дата:
On May 20, 2004, at 12:19 PM, Stephan Szabo wrote:

>
> On Thu, 20 May 2004, Adam Ruth wrote:
>
>>
>> On May 20, 2004, at 11:20 AM, Stephan Szabo wrote:
>>
>>> On Tue, 11 May 2004, [ISO-8859-1] Victor Spång Arthursson wrote:
>>>
>>>> Hi!
>>>>
>>>> I would like to know if it's possible to give a priority order of
>>>> how
>>>> to sort the returning rows?
>>>>
>>>> Like for example to order every row with a field language = DK
>>>> first,
>>>> then the rows with field language = *DE' and last the other
>>>> languages,
>>>> ordered alphabetically…?
>>>
>>> Well, I think you can do something like:
>>>
>>> ORDER BY (language = 'DK'), (language = 'DE'), language
>>>
>>> (or you could possibly condense the first two into one with case)
>>
>> Due to the sorting of boolean values, you'd need:
>>
>> ORDER BY language = 'DK' desc, language like '%DE' desc, language;
>
> Yep, someday I'll remember that 0 is less than 1. ;)
>

I only remember it after I try it once and wonder why my trues are at
the bottom!

Adam Ruth