|
|
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Добрый день, не соображу пока, мне нужно в списке наименований найти к примеру те, у которых совпадает 5 последовательных символов. Как это оформить, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 18:44 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Как это оформить Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Дальше специалисты по REGEXP подтянутся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 19:46 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 20:00 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
dmdmdm Как это оформить Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Дальше специалисты по REGEXP подтянутся. Если понимать задачу, как поиск совпадения последовательности из 5 символов в разных полях, то можно и без regexp: Код: 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.09.2017, 21:14 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Fogel, Код: plsql 1. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 22:46 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Спасибо! Не то чтоб код был для меня прозрачен, но опробую завтра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 00:29 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Насколько часто надо искать? В принципе можно создать доменные индексы, если надо часто выполнять такие запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 02:03 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Довольно часто, регулярный запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 02:30 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
leprechaun, символы в том числе буквы? тогда нужено учитывать на каком языке алфавит напр на украинском "зиіїй" подряд пьять букв, такая строка должна попасть в выборку? опять ж, upper/lower учитывать? или "у которых совпадает 5 последовательных символов" ето "ашшшшшб"? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 10:24 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
SYFogel, Код: plsql 1. SY. не. хоть минус 10000 единственное НО - этот запрос до первого уникального вхождения, если совпадения по нескольким последовательностям - все пары не покажет. Чтобы увидеть все совпадения (в том числе дубли полей) - лучше тогда отталкиваться от общей последовательности и оформить, например так: Код: 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. ну или наоборот, в каком поле какой набор общих последовательностей: Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 13:26 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Fogelне. хоть минус 10000 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. для 4, 5, 6 нет смысла искать вхождение, поетому length-3 ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 17:17 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
to Fogel подвис у меня что-то такой код, не хватило ресурсов выполнить (Connect by filtering phase runs out of temp tablespace) Еще раз уточню вопрос, есть список допустим номенклатуры. И нужно передавая в параметре количество искомых символов, выводить все позиции к примеру 3 передал, получил Молоко Молоток Виноград Молдова ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 18:08 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
leprechaun, Наибольшая общая подпоследовательность На англоязычной википедии статья намного полезнее. В интере можно найти несколько SQL решений которые не стоит воспринимать серьезно. Чуть улучшить можно используя model clause, но если задача имеет практический смысл - лучше сделать PL/SQL или C function. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 18:33 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
leprechaun, сколько "последовательностей"? select sum(length(name)-:n+1) from t и скоко строк в справочнике? если не надо выводить из-за чего повторение, попробовать переписать через exists в надежде что, если пересеклось то дальше не ищем ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 10:35 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
leprechaunЕще раз уточню вопрос с кем совпадает надо вывадить? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 11:03 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
leprechaun, Код: 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. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 11:26 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Stax Да, надо выводить с кем совпадает, и думаю не до первого совпадения, а все. В справочнике может быть тысяч 50 наименований, я пока без понятия как сделать, твой код посмотрю, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 20:17 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
Можно заюзать текстовые индексы: например, для поиска от 3-букв: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. после этого появится таблица с токенами DR$ IX_DICT_CTX $I, по ней и можно легко искать: вариант 1 Код: 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. вариант 2 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 21:36 |
|
||
|
Поиск повторяющихся значений
|
|||
|---|---|---|---|
|
#18+
leprechaunStax Да, надо выводить с кем совпадает, и думаю не до первого совпадения, а все. В справочнике может быть тысяч 50 наименований, я пока без понятия как сделать, твой код посмотрю, спасибо. запрос похож на Fogel (переписал для exists) по любому надо сравнивать каждую строку с каждой, а ето 50000*50000=2 500 000 000, при етом еще разложить на "5-ти символьные", многовато можно немного уменьшить с учетом если А пересекается с Б, то и Б с А как советовали, просить права и создавать ф-цию, и експерементировать напр с pipelined + parallel если поиск разовый, можно напр ночью искать ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 09:19 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39527945&tid=1885177]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 433ms |

| 0 / 0 |
