Можете ли вы указать одно направление для всех столбцов в заказе? - PullRequest
6 голосов
/ 13 июня 2011

Можно ли указать направление один раз для всех столбцов в заказе по выписке?

т.е.

select *
from my_table
order by name desc, type desc

Вы можете написать одно и то же, используя "desc" один раз?

Может быть, что-то похожее на это? (это не работает)

select *
from my_table
order by (name, type) desc

Ответы [ 2 ]

7 голосов
/ 13 июня 2011

Вы можете использовать row_number для этого:

select  *
from    my_table
order by 
        row_number() over (order by name, type) DESC

Окончательный DESC будет инвертировать порядок row_number. Так что он переключит ASC в DESC для имени и типа.

4 голосов
/ 13 июня 2011

Нет.Стандарт SQL не допускает этого.

Сказав это, могут быть некоторые СУБД, которые поддерживают такой синтаксис.Я просто ничего не знаю.

...