|
Удаление части строки после точки в запросе. |
☑ |
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
|
|
|
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)"
можно получить позицию точки для каждой строки.
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший