|
Отбор по длине строки в запросе | ☑ | ||
---|---|---|---|---|
0
Selma
15.12.15
✎
09:15
|
подскажите, пожалуйста, как решить задачу: есть регистр сведений штрихкодов, он огромен. Необходимо отобрать из него записи, где длина штрихкода = 7 символам (то есть наши штрихкода). Как это можно сделать в запросе? Перебор займет слишком много времени.
|
|||
1
ObjectRelation Model
15.12.15
✎
09:18
|
Штрихкод ПОДОБНО "_______"
|
|||
2
ObjectRelation Model
15.12.15
✎
09:18
|
а вообще лучше проверять на тип штрихкода
|
|||
3
Selma
15.12.15
✎
09:21
|
(1) Спасибо! Нет, это не УТП, это рарус ТКПП, там типа штриха нету
|
|||
4
Dmitriy_76
15.12.15
✎
09:22
|
условие
Где шк=выразить(шк как строка(7)) |
|||
5
Михаил 1С
15.12.15
✎
09:24
|
(4) А ты пробовал где-то в запросах использовать "Выразить" в условиях?
По-моему, нифига не работает. |
|||
6
rs_trade
15.12.15
✎
09:28
|
(5) Работает, но не однозначно. Весьма сомнительное условие.
|
|||
7
Мэс33
15.12.15
✎
09:29
|
(3) Почему (1) не подходит?
ПОДОБНО - позволяет сравнивать строку с шаблоном, используется когда строка поиска жестко не определена. Построение шаблона: % (процент): последовательность, содержащая любое количество произвольных символов _ (подчеркивание): один произвольный символ |
|||
8
FIXXXL
15.12.15
✎
09:32
|
(4) а оно не резанет строку длиной в 13 до 7?
|
|||
9
Selma
15.12.15
✎
09:33
|
(7) 1 - подходит. 2- не подходит, я ошиблась в цитировании)
|
|||
10
Мэс33
15.12.15
✎
09:33
|
(8) Не должно).
|
|||
11
фобка
15.12.15
✎
09:33
|
(8) резанет, поэтому и сравнение. А вот что будет со строкой длиной 6? Платформа хитрая может и уравнять
|
|||
12
Dmitriy_76
15.12.15
✎
09:39
|
(11) да уравняет :)))
поэтому меняем на "ПОДСТРОКА" Где ШК =ПОДСТРОКА(ШК,1,7) |
|||
13
Dmitriy_76
15.12.15
✎
09:43
|
+(12) тож мимо... если 6 то тоже выкатит
|
|||
14
Dmitriy_76
15.12.15
✎
09:44
|
+(13) прибавим еще условие
Где ШК =ПОДСТРОКА(ШК,1,7) И НЕ ШК =ПОДСТРОКА(ШК,1,6) |
|||
15
Мэс33
15.12.15
✎
09:49
|
(14) если будет 8 символов?
|
|||
16
Мэс33
15.12.15
✎
09:53
|
Надо проверить, что 7й символ существует, а 8й - не существует.
|
|||
17
Мэс33
15.12.15
✎
09:54
|
Где ПОДСТРОКА(ШК,1,7) = ШК
И ПОДСТРОКА(ШК,1,8) = "" |
|||
18
Мэс33
15.12.15
✎
09:55
|
(17)
Где НЕ ПОДСТРОКА(ШК,1,7) = "" И ПОДСТРОКА(ШК,1,8) = "" |
|||
19
фобка
15.12.15
✎
09:56
|
(15) тогда шк<> лев(шк,7)..
В (14) исчерпывающее условие, в (1) тоже скорее всего |
|||
20
фобка
15.12.15
✎
09:59
|
(17) подстрока (шк,1,8) для шк длиной в 7 символов вернет 7 символов
|
|||
21
фобка
15.12.15
✎
10:02
|
Выбрать выбор когда подстрока"1234567",1,8) = "1234567" тогда истина иначе ложь конец
|
|||
22
фобка
15.12.15
✎
10:04
|
(1) тоже работает
выбрать выбор когда "123456" подобно "_______" тогда истина иначе ложь конец |
|||
23
Мэс33
15.12.15
✎
10:05
|
(17) Гоню:
Где НЕ ПОДСТРОКА(ШК,7,1) = "" И ПОДСТРОКА(ШК,8,1) = "" |
|||
24
фобка
15.12.15
✎
10:09
|
(23) да, работает
|
|||
25
Мэс33
15.12.15
✎
10:09
|
В общем варианты: (1) (23)
|
|||
26
Мэс33
15.12.15
✎
10:09
|
(23) (24) да я болею.. и на 1С уже год не писал ничего )))
|
|||
27
фобка
15.12.15
✎
10:10
|
(25) 14 тоже вариант
(26) поправляйся |
|||
28
Мэс33
15.12.15
✎
10:13
|
(14)
Если на входе дать 6 символов, то условие: Где ШК =ПОДСТРОКА(ШК,1,7) // "123456" = "123456" И НЕ ШК =ПОДСТРОКА(ШК,1,6) // не "123456" = "123456" Выполнится. Если же ПОДСТРОКА(ШК,1,7) вернет "123456 "? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |