Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Всем привет! И <многопивавсем>! У меня тут запара вышла... Задачка следующая, Вот такая таблица... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Из нее надо разбить строки в подстроку: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Мои потуги над велосипедом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Т.е. я хочу пробежать по всем строкам и найти переходы CHARINDEX('ab') > 1 Если есть, то в новую строку.... Но что мой воспаленный мозг начинает осознавать что я куда то не туда иду... На простом чистом sql или cte это как то можно реализовать? FAQ iap я прочитал в первую очередь, не пинайте )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 11:48 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Если честно, то такие задачи прямо предназначены для CLR функций, но если совсем хочется на TSQL Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 12:21 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 12:23 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
swd1986На простом чистом sql или cte это как то можно реализовать?Вот даже без CTE, обрабатывайте напильником: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 12:27 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
alexeyvgswd1986На простом чистом sql или cte это как то можно реализовать?Вот даже без CTE, обрабатывайте напильником: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. автору же не по 2 символа разбить, а на группы одинаковых символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 12:56 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 13:40 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Ого! Сколько привалило! Спасибо Вам всем большое! Попробую запилить без create function На TSQL msLex автору же не по 2 символа разбить, а на группы одинаковых символов Да вы правы, длина групп символов неогранничена abbbbbbb Будет теперь как: a bbbbbbb msLexalexeyvgпропущено... Вот даже без CTE, обрабатывайте напильником: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. автору же не по 2 символа разбить, а на группы одинаковых символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 13:43 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Какой ужос. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 13:44 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
aleks222, Благодарю Вас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 13:52 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
aleks222Какой ужос.Это ты так свое творение оценил? swd1986Попробую запилить без create functionВам шашечки или ехать? Изучайте и анализируйте: Код: sql 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. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. Для @r = 1descriptionelapsed_timeinvm95msLex301aleks222317 Для @r = 10descriptionelapsed_timeinvm435msLex2822aleks2223906 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 15:06 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Как раз сижу изучаю) invmaleks222Какой ужос.Это ты так свое творение оценил? swd1986Попробую запилить без create functionВам шашечки или ехать? Изучайте и анализируйте: Код: sql 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. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. Для @r = 1descriptiontelapsed_timeinvmt95msLext301aleks222t317 Для @r = 10descriptiontelapsed_timeinvmt435msLext2822aleks222t3906 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 15:28 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. А должно быть: aa bb aaa bb cc bb cc dd cc ee А так все понял куда копать Мои мозги гораздо тормознутее ваших, дайте переварить всю инфу) спасибо!! aleks222Какой ужос. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 15:31 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
invmИзучайте и анализируйте: Передергиваете, парнишша? Я понимаю, что выборка из системной таблицы да ишо с distinct - это обосраться и не жить. Но, ежели, слегка отполировать - будет быстрее, а главное - понятнее. Чем твое безумное творение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 16:53 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Нумерки ужо сами сделайте. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 17:10 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
aleks222Но, ежели, слегка отполировать - будет быстрее Отполированное Код: sql 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. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. Для @r = 1descriptionelapsed_timeinvm68aleks222, отполировано163aleks222, отполировано №2196msLex421 Для @r = 10descriptionelapsed_timeinvm385aleks222, отполировано №2951aleks222, отполировано1585msLex4100 Полируй дальше. Может в процессе даже осознаешь из-за чего твое гениальное творение таки медленнее моего безумного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 17:51 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
invm Отполированное Полируй дальше. Может в процессе даже осознаешь из-за чего твое гениальное творение таки медленнее моего безумного. Полировать то у тя тоже слабо получается. Твое безумное творение быстрее только на очень длинных строках. Ты даже свои безумные функции пишешь безумно сложно Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 19:11 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
aleks222Полировать то у тя тоже слабо получается. Твое безумное творение быстрее только на очень длинных строках.Ты, дарагуля, глазки все-таки протри и поизучай пример - а то так и продолжишь выставлять себя идиотом. Впрочем, очень похоже, что это твое любимое занятие Заодно там же увидишь все "плюсы" использования patindex... Ну и исправь свои "гениальные" варианты - они теряет ровно одну строку результата для каждого abc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 19:24 |
|
||
|
Разбить строку на подстроку
|
|||
|---|---|---|---|
|
#18+
Боже боже. Как представлю, с какими продуктами жизнедеятельности вместо данных приходится людям работать, прям слезы на глазах. Но зато опыт копания в вот этом всем. Товарищ автор задачи, ответ на вашу задачу находится в любом яп, кроме SQL. Это будет а) быстрее б) удобнее с) короче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 04:38 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=116&tid=1688361]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 381ms |

| 0 / 0 |
