2017-02-22 44 views
0

Когда у меня есть «заказ» пункта внутри улья запроса , например:Hive алфавитной сортировки

SELECT * 
FROM categories 
ORDER BY category_name 

Результаты будут отсортированы как все прописные буквы, а затем все нижние буквы I необходимо некоторое ограничение или конфигурацию таблицы, чтобы обеспечить соблюдение приведенного ниже поведения. Сеанс сортировка с прописные/строчные не поможет

Текущие результаты:

AAA 
KKK 
ZZZ 
aaa 
bbb 
yyy 

Ожидаемые результаты

aaa 
AAA 
bbb 
KKK 
yyy 
ZZZ 

Есть ли конфигурация, которая в жизнь улья для сортировки данных Сначала следует сортировка по алфавиту. в sql его сортировка в пределах оракула его LTS Какова правильная конфигурация для ожидаемых результатов сортировки такого рода, и где ее установить.

Благодаря передовой

ответ

1

Как насчет использования lower()?

SELECT * 
FROM categories 
ORDER BY LOWER(category_name); 

Примечание: это будет произвольно в случае результата. Потому что буквы нижнего регистра приходят после верхнего регистра во всех современных сопоставлениях, вы можете сделать:

SELECT c.* 
FROM categories c 
ORDER BY LOWER(c.category_name), c.category_name DESC; 
+0

У меня есть другой инструмент, который запрашивает таблицы. Поэтому я хочу, чтобы ограничение/конфигурация таблицы приводило к тому, чтобы он вел себя так, как я упоминаю. –