|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
Есть такая функция WHEN dt.Comment like 'Комиссия по договору эквайринга%' THEN LTRIM(SUBSTRING (dt.Comment, 32, 100)) И выдает эта функция номер договора но с датой например и каким то еще текстом нужно все что после номера удалить как вставить left и charindex помогите прошу вас! чтоб остался только номер договора пишу так: но не получается: CASE WHEN dt.Comment like 'Комиссия по договору эквайринга%' THEN LEFT (CHARINDEX (' ', LTRIM(SUBSTRING (dt.Comment, 32, 100))),' ') WHEN dt.Comment like 'Требование по уплате комиссии за обслуживание по договору%' THEN LEFT (CHARINDEX (' ', LTRIM(SUBSTRING (dt.Comment, 58, 100))),' ') WHEN dt.Comment like 'Комиссия за обслуживание по договору%' THEN LEFT (CHARINDEX (' ', LTRIM(SUBSTRING (dt.Comment, 37, 100))),' ') WHEN dt.Comment like 'Возврат комиссии по договору эквайринга%' THEN LEFT (CHARINDEX (' ', LTRIM(SUBSTRING (dt.Comment, 40, 100))),' ') ELSE 'Прочие проводки' END as Dog1, ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 18:30 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
infinitidolla, ну вы хоть образец данных (лучше несколько) покажите и желаемый результат ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 18:36 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
infinitidolla, Вы вроде как длину строки, которую надо оставить знаете. У CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] ) есть еще 3-й параметр ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 19:08 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
infinitidolla, а если завтра появится пятый вид комментария? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 23:37 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
Я так обрезаю если вариантов немного Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 00:32 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
Владислав Колосов infinitidolla, а если завтра появится пятый вид комментария? - нуу, это надо всё переписывать, менять архитектуру... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 08:45 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
komrad, вот если так пишу то выгружает часть: CASE WHEN dt.Comment like 'Комиссия по договору эквайринга%' LTRIM(SUBSTRING (dt.Comment, 32, 100))) WHEN dt.Comment like 'Требование по уплате комиссии за обслуживание по договору%' LTRIM(SUBSTRING (dt.Comment, 58, 100))) WHEN dt.Comment like 'Комиссия за обслуживание по договору%' LTRIM(SUBSTRING (dt.Comment, 37, 100))) WHEN dt.Comment like 'Возврат комиссии по договору эквайринга%' LTRIM(SUBSTRING (dt.Comment, 40, 100))) ELSE 'Прочие проводки' END as Dog1, ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 10:20 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
alexeyvg, И главное в коде проблема то что связка идет по договору и обрезанному договору я его выкладывала в предыдущем сообщении код работал долгое время стали появляется новые комментарии и он сломался вот пытаюсь починить уже неск дней... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 10:21 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
Focha, объясните пожалуйста вот эту часть [^0-9][0-9][0-9][0-9][0-9][0-9]' ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 10:26 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
komrad, вот такие комментарии из них надо вытащить только номер договора без дат Комиссия за обслуживание по договору 01-ЭК-2020/097 от 19/08/2020 Комиссия за обслуживание по договору 484-17/эт от 23/03/2017 Комиссия за обслуживание по договору 76 от 01/09/2016 Требование по уплате комиссии за обслуживание по договору 00-эк-2018/725 от 05/03/2018 Требование по уплате комиссии за обслуживание по договору 01-ЭК-2020/169 от 02/12/2020 Возврат комиссии по договору эквайринга 00-эк-2017/572 Возврат комиссии по договору эквайринга 00-эк-2017/629 в дате 02/04/2021 Возврат комиссии по договору эквайринга 00-эк-2017/631 в дате 05/04/2021 Возврат комиссии по договору эквайринга 00-эк-2017/648 Комиссия по договору эквайринга 02-ЭК-2020/133 в дате 06/04/2021 Комиссия по договору эквайринга 02-ЭК-2020/133 в дате 07/04/2021 Комиссия по договору эквайринга 02-ЭК-2021/134 Комиссия по договору эквайринга 02-ЭК-2021/134 в дате 01/04/2021 Комиссия по договору эквайринга 84 Комиссия по договору эквайринга 70 Комиссия по договору эквайринга 91 Комиссия по договору эквайринга 97 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 10:49 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
infinitidolla Focha, объясните пожалуйста вот эту часть [^0-9][0-9][0-9][0-9][0-9][0-9]' infinitidolla вот такие комментарии из них надо вытащить только номер договора без дат Комиссия за обслуживание по договору 01-ЭК-2020/097 от 19/08/2020 Комиссия за обслуживание по договору 484-17/эт от 23/03/2017 Комиссия за обслуживание по договору 76 от 01/09/2016 Тогда так: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 11:14 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
alexeyvg, скажите пожалуйста как мне вставить это в свой код код я писала он очень длинный... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 11:21 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
infinitidolla alexeyvg, скажите пожалуйста как мне вставить это в свой код код я писала он очень длинный... Найдите, где у вас выбирается поле Comment, оформите как подзапрос, что бы вычислить start через PATINDEX, потом выше его используйте в substring По моему, использовать мой примитивный код ещё проще, чем придумать... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 11:30 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
Модератор: Как и предупреждал, начинаю портянки стирать ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 11:32 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
komrad,очень сильно прошу помогите пожалуйста приписать это Т.е. вам нужно найти первый символ цифру, и вырезать подстроку от неё до первого пробела? Тогда так: declare @s nvarchar(100) = N'Комиссия за обслуживание по договору 01-ЭК-2020/097 от 19/08/2020' select @s as [строка], substring(@s, start, charindex(' ', @s, start) - start) as [номер] from (select @s as s, PATINDEX ('%[0-9]%', @s) as start) s к моему коду я его ниже выложила он очень сложный. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 11:55 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 11:58 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
invm, а если комментарии меняются каждый день???? очень прошу пожалуйста помогите приписать это в мой код !! Т.е. вам нужно найти первый символ цифру, и вырезать подстроку от неё до первого пробела? Тогда так: declare @s nvarchar(100) = N'Комиссия за обслуживание по договору 01-ЭК-2020/097 от 19/08/2020' select @s as [строка], substring(@s, start, charindex(' ', @s, start) - start) as [номер] from (select @s as s, PATINDEX ('%[0-9]%', @s) as start) s к моему коду я его ниже выложила он очень сложный. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 12:03 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
infinitidolla komrad, вот такие комментарии из них надо вытащить только номер договора без дат здесь текстКомиссия за обслуживание по договору 01-ЭК-2020/097 от 19/08/2020 Комиссия за обслуживание по договору 484-17/эт от 23/03/2017 Комиссия за обслуживание по договору 76 от 01/09/2016 Требование по уплате комиссии за обслуживание по договору 00-эк-2018/725 от 05/03/2018 Требование по уплате комиссии за обслуживание по договору 01-ЭК-2020/169 от 02/12/2020 Возврат комиссии по договору эквайринга 00-эк-2017/572 Возврат комиссии по договору эквайринга 00-эк-2017/629 в дате 02/04/2021 Возврат комиссии по договору эквайринга 00-эк-2017/631 в дате 05/04/2021 Возврат комиссии по договору эквайринга 00-эк-2017/648 Комиссия по договору эквайринга 02-ЭК-2020/133 в дате 06/04/2021 Комиссия по договору эквайринга 02-ЭК-2020/133 в дате 07/04/2021 Комиссия по договору эквайринга 02-ЭК-2021/134 Комиссия по договору эквайринга 02-ЭК-2021/134 в дате 01/04/2021 Комиссия по договору эквайринга 84 Комиссия по договору эквайринга 70 Комиссия по договору эквайринга 91 Комиссия по договору эквайринга 97 а здесь код Код: 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.
кусок кода с left и до [Cut 2] и есть искомое но его надо будет допиливать по мере поступления новых типов комментариев PS код не гибкий и как постоянное решение не подходит ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 12:30 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
komrad, а это как постоянное решение поможет ??? nvm, а если комментарии меняются каждый день???? очень прошу пожалуйста помогите приписать это в мой код !! Т.е. вам нужно найти первый символ цифру, и вырезать подстроку от неё до первого пробела? Тогда так: declare @s nvarchar(100) = N'Комиссия за обслуживание по договору 01-ЭК-2020/097 от 19/08/2020' select @s as [строка], substring(@s, start, charindex(' ', @s, start) - start) as [номер] from (select @s as s, PATINDEX ('%[0-9]%', @s) as start) s ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 12:42 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
alexeyvg Владислав Колосов infinitidolla, а если завтра появится пятый вид комментария? - нуу, это надо всё переписывать, менять архитектуру... Выделять деньги на проект... Золотое дно! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:17 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
infinitidolla komrad, а это как постоянное решение поможет ??? nvm, а если комментарии меняются каждый день???? очень прошу пожалуйста помогите приписать это в мой код !! Т.е. вам нужно найти первый символ цифру, и вырезать подстроку от неё до первого пробела? Тогда так: declare @s nvarchar(100) = N'Комиссия за обслуживание по договору 01-ЭК-2020/097 от 19/08/2020' select @s as [строка], substring(@s, start, charindex(' ', @s, start) - start) as [номер] from (select @s as s, PATINDEX ('%[0-9]%', @s) as start) s Если вы не понимаете как это трансформировать в нужный вам код, то это задание не надо делать. Следующее задание может быть сложнее и с ним вы тоже на форум пойдете? Вы хоть на тестовой базе это делаете или сразу на боевой? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:29 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
komrad, на тестовой конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 14:14 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
infinitidolla komrad, а это как постоянное решение поможет ??? nvm, а если комментарии меняются каждый день???? очень прошу пожалуйста помогите приписать это в мой код !! Не останавливайтесь, я записываю ваши комменты ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 15:48 |
|
Как удалить все после пробела
|
|||
---|---|---|---|
#18+
komrad, не сработало получается такие обрезки: 105-ар 310 01290_269RUB0701/20 19.03.2021г. 28 01/02-02/20 02/02-02/20 02/20 3799 20703-7047-04/КА 900.00 Обмен 2021г, 2021 7(985)-538-53-04. Налог ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 16:05 |
|
|
start [/forum/topic.php?fid=46&msg=40062903&tid=1684808]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 315ms |
total: | 477ms |
0 / 0 |