Заказ SQL результатов с липким предметом - PullRequest
0 голосов
/ 23 апреля 2020

Есть ли способ упорядочить результаты в алфавитном порядке и по коду страны, но сделать один результат в верхней части для каждого кода страны?

Например, этот порядок:

ORDER BY PortalStock.CountryCode DESC, PortalStock.Location ASC";

в настоящее время будет отображаться как:

Location    CountryCode
LONDON      GB
OXFORD      GB
READING     GB
LYON        FR
MARSEILLE   FR
PARIS       FR
RENNES      FR

Я хотел бы иметь возможность упорядочить результаты сначала по стране (сначала ГБ), затем для ГБ Оксфорд должен быть в начале списка, при этом любой дополнительный результат будет в алфавитном порядке.

Результаты FR должны начинаться с Парижа, причем любой дополнительный результат должен быть в алфавитном порядке.

Location    Country
OXFORD      GB
LONDON      GB
READING     GB
PARIS       FR
LYON        FR
MARSEILLE   FR
RENNES      FR

Это возможно без добавления дополнительных данных заказа в БД?

1 Ответ

1 голос
/ 23 апреля 2020

Требуется условный заказ по:

order by country desc,
         (case when location = 'oxford' then 1 else 2 end), 
          location;

Если вы хотите oxford наверху только для GB страны, то добавьте еще одно условие:

(case when country = 'GB' and location = 'oxford' then 1 else 2 end)

Примечание: Это сначала будет иметь значение c на country не только для GB, а затем сортируется сначала oxford местоположение.

...