|
|
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousЫ? Кстати, недостаток разделителей можно устранить, не сломав решение задачи "одной формулой": Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Недостаток - сильно увеличивает размер промежуточной валидной строки и может вылезти за "габарит" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 17:50 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousFogelно про одну формулу - это было про одну формулу. Так и формула одна - присмотрись. Два вызова - потому что oracle не умеет конструкции, позволяющие маску не захватывать . А потому хвостовую точку повторно не читает=> фейлит маску на непосредственно следующим за обнаруженной последовательности ("не хватает" лидирующей точки). Отсюда два вызова. Если этот недостаток устранить, то ты пролетаешь и с самым слабым утверждением про "одну формулу": Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Ы? хитрец какой. я тоже написал, что слева 0 вылез, а если тримить слева - это уже вторая формула пошла. и доводы повторяешь, что нечётная точка выбивается из маски. короче, то же самое другими словами. спор уже ни о чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 18:32 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Извините, а не могли бы Вы подсказать каким образом еще можно поставить ноль перед 1-м символом? Сам пытаюсь - не выходит. Т.е 01.01 02.22 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 11:11 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Viacheslav.dem, Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 11:27 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Шутник Ореховский, Спасибо большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 11:35 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Подскажите, мне надо сделать сортировку order by. Можно ли преобразовать строку в число с разделителем "." в формате 09? Сделал сортировку до 1-й точки Код: plsql 1. как сделать сортировку если n-ое количество точек. Вариант выше работает хорошо, но можно ли сделать сортировку не подставляя нули как описано выше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 10:23 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Viacheslav.dem, не совсем понятно, чем Вам мешает "подстановка нулей"? покажите тестовые данные, и результат который ожидаете зы я в регулярках двоечник (пока токо учусь) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 12:41 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Stax, Есть таблица с кодом (varchar), при сортировке по коду, оракл выводит вот так: Код: sql 1. 2. 3. 4. 5. А нужно: Код: sql 1. 2. 3. 4. 5. n-ое количество уровней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 13:29 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Viacheslav.dem, Код: plsql 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 13:32 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Viacheslav.dem, 10 можно заменить на максимальную длину varchar +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 13:33 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Viacheslav.demn-ое количество уровней. Сорри, не дочитал, мой вариант не подойдет =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 13:40 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Viacheslav.dem, не больше 9999 (4 цифры) влоб для цифр Код: 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. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 14:26 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Stax, Спасибо, но между разделителям может присутствовать максимум 2 цифры (т.е маска 09). По вашей таблице в выделенной записи должно быть 1.22.33 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 16:26 |
|
||
|
Функция REGEXP_REPLACE
|
|||
|---|---|---|---|
|
#18+
Viacheslav.dem, если максимум две цифры, то достаточно regexp_replace(regexp_replace(s,'(\d+)','000\1'),'0*(\d{ 2 })','\1') ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2017, 16:55 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39543257&tid=1885024]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 186ms |
| total: | 302ms |

| 0 / 0 |
