У меня есть следующие диапазоны цен для строк: $0-$50, $50-$100, $100-$500, $500+
определяется как столбец varchar2. Я хотел бы сортировать строки со значениями в указанном выше порядке. может ли кто-нибудь предложить мне идею сделать это.сортировать по диапазону цен в запросе оракула
ответ
Вы можете делать то, что хотите, используя regexp_substr()
. Однако case
вероятно проще всего:
order by (case pricerange
when '$0-$50' then 1
when '$50-$100' then 2
when '$100-$500' then 3
when '$500+' then 4
else 999
end)
как сделать заказ desc если я использую случай? – user525146
Просто добавьте 'desc' после выражения:' end> desc'. –
Могу ли я использовать 'decode' и' regexp_substr() 'в порядке, как это? 'order by decode (sign (regexp_substr ('1 asc nulls last', '^ (\ d) *') - 7), '-1', '1 asc nulls last', (case pricerange , когда '$ 0- $ 50 'затем 1 , когда «$ 50- $ 100», затем 2 , когда «$ 100- $ 500», затем 3 , когда «$ 500 +», затем 4 еще 999 конец)) 'потому что он не работает для меня, сортировка не работает на этом query – user525146
Может быть, вы принимаете во внимание то, как это. WIDTH_BUCKET(exp, min,max,buckets_cnt)
. Функция присваивает exp свой ведро. И он создает buckets_cnt + 2 В следующем примере создается 5 ведер WIDTH_BUCKET(price,50,500,3)
.
(500-50)/3 = 150
0 - <50 less than min
1 - (50 : 200)
2 - (200 : 350)
3 - (350 : 500)
4 - 500> more than max
with prod_table as(select 'A' prod_name, 49 price from dual
union all
select 'B' prod_name, 100 price from dual
union all
select 'c' prod_name, 200 price from dual
union all
select 'd' prod_name, 300 price from dual
union all
select 'e' prod_name, 1000 price from dual)
SELECT prod_name, price,WIDTH_BUCKET(price,50,500,3) from prod_table order by WIDTH_BUCKET(price,50,500,3) desc
- 1. Mysql сортировать по диапазону
- 2. Как фильтровать по диапазону цен в образце кубу Kylin
- 3. Модель базы данных по разному диапазону цен на продукцию
- 4. сортировать по дате в CAML запросе
- 5. Нужно сортировать по выражению в запросе доступа
- 6. Использование «Сортировать по» дважды в одном запросе
- 7. 'Сортировать по' игнорируется в запросе LINQ
- 8. Эффективное вычисление количества результатов по диапазону в сгруппированном SQL-запросе
- 9. Вызывающая функция в запросе оракула
- 10. Дублирование строк в запросе оракула
- 11. Где условие в запросе оракула
- 12. Проблема в запросе триггера оракула
- 13. С AS в оракула запросе
- 14. Сортировка SQL по диапазону даты
- 15. rethinkdb: групповые документы по ценовому диапазону
- 16. Как выполнить поиск в запросе по диапазону и совпадению в одном объединенном запросе с использованием Elasticsearch?
- 17. Пользовательская сортировка по диапазону VBA
- 18. высчитывает работает баланс в оракула запросе
- 19. Как сортировать в запросе linq?
- 20. Случай, основанный на соединении в запросе оракула
- 21. Ограничение по диапазону
- 22. Деление по диапазону значений
- 23. Цикл по диапазону дат
- 24. Инициализировать массив по диапазону
- 25. MySQL - группа по диапазону
- 26. Многомерный поиск по диапазону
- 27. Диапазон диапазонов по диапазону?
- 28. Как заказать запрос MySQL по диапазону?
- 29. Массив разделен по диапазону?
- 30. Перебор массива по диапазону
Можете ли вы предоставить, что вы пробовали? –
Я не понял, с чего начать и как .. – user525146
Просьба представить структуру таблицы, данные образца и желаемые результаты. Угадав, что вы хотите «заказать» с помощью инструкции 'case'. – sgeddes