|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
Добрый день! Начал изучать pl sql, наткнулся на задачу по сортировке. Почитал темы на форму, но не догоняю, есть ли простой способ сортировки внутри строки? Например, дана произвольная строка, где могут встречаться только английские буквы "abirtj" или только русские "багоплы" или только цифры '94340' (при сортировке цифр 0 идет вначале), необходимо отсортировать символы в строке по алфавиту, а цифры по возрастанию? изначально строка была смешанная, например '93АzHjskfП5848', я разбил её на диапазоны - только цифры, только русские строчные и т.д, а вот как сортировать внутри диапазона не пойму. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 19:50 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
const_studentесть ли простой способ сортировки внутри строки?Зачем? Здравым людям это не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 20:04 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
const_studentя разбил её на диапазоны - только цифры, только русские строчные и т.д,гласные, четные, звонкие, ... разбивай дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2018, 20:54 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
Elic, А если предположить, что я нездравый человек?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 06:24 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
const_studentнездравый человекДля тех, кого в яслях не учили складывать пирамидку из колечек на палочку, в ВУЗах преподают методы сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 06:32 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
ElicЗачем? Здравым людям это не требуется. Чего только наши преподы не придумают. Вот только разбивать на диапазоны зачем? Автору надо почитать про способы сортировки. Выбрать нужный алгоритм. И реализовать. "Пызырек" подойдет вполне. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 06:50 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
Elic, Перфекционизм ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 10:21 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
982183, Спасибо, почитаю, просто я так понимаю пузырек подойдет, если необходимый порядок сортировки совпадает с порядком кодировки символов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 15:24 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
const_studentСпасибо, почитаю, просто я так понимаю пузырек подойдет, если необходимый порядок сортировки совпадает с порядком кодировки символов. Любому алгоритму сортировки потребуется числовая характеристика по которой можно ранжировать что либо, причем совершенно неважно что, можешь создать свой массив в котором определишь порядок сортировки для каждого символа. PS: на PL/SQL можно использовать order by ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 21:21 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
SkilledJuniorPS: на PL/SQL можно использовать order by Распихать значение по строкам, отсортировать, а потом собрать .... Вы батенька извращенец похлеще его преподов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 03:07 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
const_student если необходимый порядок сортировки совпадает с порядком кодировки символов. В любом случае необходимый порядок сортировки можно и нужно выразить некой формулой если он не совпадает с алфавитным расположением.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 03:09 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
sql Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 07:48 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
mRdUKEsql [spoiler ] Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Если нужна сортировка только в рамках групп, то кейсом можно определить тип данных (например, regexp_replace(...,[[:digit:]]), проставить ранги, а затем уже сделать сортировку в ранге. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 09:38 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
А не легче ли просто составить словарь, и сортировать согласно порядка в нем. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 09:54 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
982183не легче ли просто составить словарьНа сотню-другую тысяч юникод-символов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 13:37 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
mRdUKE, такое впечатление что listagg сортирует "by binary" ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 14:14 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
mRdUKE, Большое спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 16:22 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
Staxтакое впечатление что listagg сортирует "by binary" stax Посему NLSSORT тебе в руки: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
T.e. просто используй: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 16:40 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
SkilledJuniorconst_studentСпасибо, почитаю, просто я так понимаю пузырек подойдет, если необходимый порядок сортировки совпадает с порядком кодировки символов. Любому алгоритму сортировки потребуется числовая характеристика по которой можно ранжировать что либо, причем совершенно неважно что, можешь создать свой массив в котором определишь порядок сортировки для каждого символа. PS: на PL/SQL можно использовать order by А как использовать order by прямо внутри строки? Если значения в разных строках я понимаю как использовать order by, а вот если все значения в одной строке? Такой вариант не работает: Код: plsql 1. 2. 3.
ps: сорри за тупой вопрос) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 18:46 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
const_studentА как использовать order by прямо внутри строки? Никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 19:05 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
const_studentА как использовать order by прямо внутри строки? 982183Распихать значение по строкам, отсортировать, а потом собрать .... Вы батенька извращенец похлеще его преподов. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 22:17 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
Сортир- уешь, значит существ- уешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2018, 22:34 |
|
Сортировка символов внутри строки
|
|||
---|---|---|---|
#18+
with t1 as ( select 'London Singapur' tmp from dual union all select 'Singapur China' tmp from dual union all select 'USA JAPAN ' tmp from dual union all select 'JAPAN USA' tmp from dual union all select 'Singapur London' tmp from dual ), dst as ( select ROWNUM rwn,tmp,REGEXP_COUNT(tmp,'[^[:space:]]+') cnt_array from t1 ), rc(id, cnt_id, tmp, CNT_ARRAY, SL) AS ( SELECT rwn id,1 cnt_id,tmp, CNT_ARRAY, regexp_substr(tmp,'[^[:space:]]+',1,1) sl FROM dst UNION ALL SELECT rc.id, rc.cnt_id+1 cnt_id, rc.tmp, rc.CNT_ARRAY, regexp_substr(rc.tmp,'[^[:space:]]+',1,rc.cnt_id+1) sl FROM dst tr, rc WHERE tr.rwn = rc.id and rc.cnt_id+1<=tr.CNT_ARRAY ), srt as (select rc.*,row_number() over (partition by id order by id) nb, listagg(sl,' ') WITHIN GROUP (ORDER BY sl) over(partition by id) fiel_srt from rc) select * from srt where nb=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 09:19 |
|
|
start [/forum/search_topic.php?author=BASYARU&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 441ms |
total: | 611ms |
0 / 0 |