|
|
|
Парсим строку, разделитель #
|
|||
|---|---|---|---|
|
#18+
Приветствую всех! Есть достаточно тривиальная задача: дана строка, содержащая в себе N-ое количество полей. В качестве разделителя полей используется знак решетка - #. Необходимо распарсить строку - вычленить поля. Пример строки: AAA#BBB#CCC#DDD Набросал такой запрос: Код: plsql 1. 2. 3. 4. 5. Результат: ResultAAABBBCCCDDD Но, если одно из полей будет пустое, то текущий запрос его не увидит. Например: AAA#BBB##CCC#DDD Получаем такой же результат: ResultAAABBBCCCDDD а нужно отображать и все пустые поля, вот так: ResultAAABBB CCCDDD Решил задачу путем вставки пробела между двумя решетками: Код: plsql 1. 2. 3. 4. 5. Теперь так-же выводятся и пусты поля. А вопрос следующий: Как можно альтернативным способом решить данную задачку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 10:59:39 |
|
||
|
Парсим строку, разделитель #
|
|||
|---|---|---|---|
|
#18+
LandgrafКак можно альтернативным способом решить данную задачку? instr/substr connect by level<length(str)-length(replace(str,'#')) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 11:18:26 |
|
||
|
Парсим строку, разделитель #
|
|||
|---|---|---|---|
|
#18+
Landgraf, Код: plsql 1. 2. 3. 4. 5. тут ничего альтернативного просто соломки подстелить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 12:32:49 |
|
||
|
Парсим строку, разделитель #
|
|||
|---|---|---|---|
|
#18+
Landgraf, Начальную строку можно преобразовать так, чтоб её переварила xmltable. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 12:33:52 |
|
||
|
Парсим строку, разделитель #
|
|||
|---|---|---|---|
|
#18+
Можно с помощью функции сделать. Примерно вот так: Код: plsql 1. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. select * from table(comma_to_table('AAA#BBB##CCC#DDD', '#')) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 14:53:27 |
|
||
|
Парсим строку, разделитель #
|
|||
|---|---|---|---|
|
#18+
Landgraf, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 16:59:18 |
|
||
|
Парсим строку, разделитель #
|
|||
|---|---|---|---|
|
#18+
SY, автор Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 18:36:02 |
|
||
|
Парсим строку, разделитель #
|
|||
|---|---|---|---|
|
#18+
orawish, А что не так? Строка '#' означает двe NULL подстроки разделенных #: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 19:39:21 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39284193&tid=1887752]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 516ms |

| 0 / 0 |
