|
Длина строки в запросе. | ☑ | ||
---|---|---|---|---|
0
Zombi
08.06.15
✎
12:06
|
Есть документ, в документе есть текстовое поле. Как запросом отобрать только документы, у которых длинна значения в этом поле = 10?
|
|||
1
Chikko
08.06.15
✎
12:08
|
ПОДОБНО "__________"
|
|||
2
Zombi
08.06.15
✎
12:11
|
(1) Что то ничего не выбирает.
|
|||
3
Zombi
08.06.15
✎
12:11
|
ВЫБРАТЬ
ЗаказСервисОргтехника.Серийник, ЗаказСервисОргтехника.Y ИЗ Документ.ЗаказСервисОргтехника КАК ЗаказСервисОргтехника ГДЕ ЗаказСервисОргтехника.Серийник ПОДОБНО " " |
|||
4
Lexey_
08.06.15
✎
12:13
|
(3) тут копипастера звать надо
|
|||
5
Heckfy
08.06.15
✎
12:13
|
||||
6
Jonny_Khomich
08.06.15
✎
12:13
|
Думаю можно взять подстрока(строка,1,10) сравнить с полной строкой. Те которые равны, сравнить ещё с подстрока(строка,1,9). Те которые не равны тебе нужны.
|
|||
7
DirecTwiX
08.06.15
✎
12:13
|
ГДЕ Серийник = ПОДСТРОКА(Серийник ,1,10)
|
|||
8
vicof
08.06.15
✎
12:14
|
(3) Там подчеркивания нужны, а не пробелы
|
|||
9
Fragster
гуру
08.06.15
✎
12:20
|
ПОДСТРОКА(Серийник ,11,1) = ""
|
|||
10
Fragster
гуру
08.06.15
✎
12:21
|
и ПОДСТРОКА(Серийник ,10,1) <> ""
|
|||
11
Jonny_Khomich
08.06.15
✎
12:30
|
А можно узнать количество символов в строке?
|
|||
12
DirecTwiX
08.06.15
✎
12:31
|
(11) нет
|
|||
13
Zombi
08.06.15
✎
12:41
|
(9) (10) Вроде работает. Спасибо.
|
|||
14
Ildarovich
08.06.15
✎
13:17
|
Если строка содержит правые пробелы, то (9) и (10) работать не будет.
Правильнее ПОДСТРОКА(Серийник, 10, 1) + "!" <> "!" И ПОДСТРОКА(Серийник, 11, 1) + "!"= "!" Общий метод определения длины строки приведен в статье http://catalog.mista.ru/public/306536/ , а конкретно в решении 21. Его улучшение - в комментариях (61) (62) к той же статье. |
|||
15
Fragster
гуру
08.06.15
✎
13:42
|
(14) правые пробелы при приведении к варчар отсекаются, а вот для строки 0123456789!1234556 вариант с ПОДСТРОКА(Серийник + "!", 10, 1) даст ошибку
|
|||
16
Ildarovich
08.06.15
✎
13:57
|
(15) ну и что, что отсекаются? А для строки 0123456789!1234556 вариант с ПОДСТРОКА(Серийник + "!", 10, 1) дает не ошибку (какую?) а 9.
|
|||
17
ЧеловекДуши
08.06.15
✎
14:10
|
(0) Забить, реально забить на этот момент.
Нарисуй Регистр сведений, где будет держать "нужные" отборы и по ним уже отбирать и предоставлять информацию пользователю. Разницы он, Пользователь, не увидит. Ну разве что только Системный администратор с вопросом "Чет БД распухла, пора Винты заказывать!!!" :) |
|||
18
ЧеловекДуши
08.06.15
✎
14:11
|
+(17) При записи Объекта "Документ" или "Справочник" заполнять регистр нужными значениями :)
|
|||
19
Бубка Гоп
08.06.15
✎
14:12
|
(17) (18) шта?
|
|||
20
ЧеловекДуши
08.06.15
✎
14:14
|
(19) Чи-т-О!1, Создать заблаговременный массив отбора для тупого фильтра на подоию в (0). Ундерстенд?
|
|||
21
Fragster
гуру
08.06.15
✎
14:15
|
(16) ошибка в определении длины строки будет, если в строке будет встречаться тот самый символ, которым мы "закрываем" строку. ну не с 0 начинай, а с 1.
а то, что отсекаются - значит сравнение с пустой строкой будет правильно работать. и при сохранении эти пробелы также обрежутся для типа варчар. |
|||
22
Ildarovich
08.06.15
✎
14:45
|
Ошибки НЕ БУДЕТ! - Там же два сравнения. Я не только с закрывашкой сравниваю.
По второму вопросу: Что, из базы нельзя взять строку из 10-ти пробелов? - Проверю. |
|||
23
Бубка Гоп
08.06.15
✎
14:54
|
(20) я думал это шутка такая. Ну и методы у вас, коллега
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |