|
Удаление части строки после точки в запросе. | ☑ | ||
---|---|---|---|---|
0
Arutynov
22.08.22
✎
09:27
|
Добрый день. Не подскажете как удалить в запросе часть строки после знака "." Пример - M257-M258.154 надо M257-M258
Фиксировано отрезать не могу так как длина разная и не везде точки есть. |
|||
1
Timon1405
22.08.22
✎
09:29
|
выбор когда подстрока(поле,2,1) = "." тогда подстрока(поле,1,1)
когда подстрока(поле,3,1) = "." тогда подстрока(поле,1,2)когда подстрока(поле,3,1) = "." тогда подстрока(поле,1,2) |
|||
2
Timon1405
22.08.22
✎
09:30
|
(1) *выбор когда подстрока(поле,2,1) = "." тогда подстрока(поле,1,1)
когда подстрока(поле,3,1) = "." тогда подстрока(поле,1,2) когда подстрока(поле,4,1) = "." тогда подстрока(поле,1,3) конец |
|||
3
Timon1405
22.08.22
✎
09:31
|
или написать функцию и применить её в СКД.
в чём необходимость делать это в запросе? |
|||
4
Kassern
22.08.22
✎
09:33
|
(0) Какая версия платформы? Если 8.3.20.1549 и выше, тогда вот https://wonderland.v8.1c.ru/blog/novye-funktsii-yazyka-zaprosov-i-sistemy-komponovki-dannykh/
|
|||
5
Kassern
22.08.22
✎
09:33
|
Лев(Left) – получает первые слева символы строки.
Прав(Right) – получает первые справа символы строки. СтрНайти(StrFind) – находит первую позицию подстроки в строке (без учета регистра). |
|||
6
2S
22.08.22
✎
09:34
|
(2) у него длина строк разная
|
|||
7
2S
22.08.22
✎
09:34
|
(5) +1
|
|||
8
Arutynov
22.08.22
✎
09:38
|
(2) - Работает если добавить условий. Спасибо. Просто СКД отчет. Просто хотелось именно в запросе написать.
|
|||
9
Kassern
22.08.22
✎
09:43
|
Если вы этим полем постоянно пользуетесь в разных местах и часто вам приходится обрезать строку, значит, что-то у вас не так с архитектурой. Проще хранить отдельно обрезанную часть, чем каждый раз ее вычислять лесенкой из 10+ "Выбор когда..." Не думаю, что из-за короткого текстового поля у вас сильно разбухнет база.
|
|||
10
Arutynov
22.08.22
✎
09:53
|
Это одноразовый отчет. В остальных местах правильно. Спасибо.
|
|||
11
Said_We
22.08.22
✎
12:54
|
Если платформа ниже чем Если 8.3.20, в которой ввели функцию в запросе СтрНайти(), то можно поизвращаться. Можно разобрать строку по одному символу. Найти минимум для каждой строки, где найдена точка и всё что больше позиции точки не брать. Т.е. чтобы не писать 150
"выбор когда подстрока(поле,2,1) = "." тогда подстрока(поле,1,1)" можно получить позицию точки для каждой строки. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |