|
LIKE и знак подчеркивания | ☑ | ||
---|---|---|---|---|
0
ezmemo
20.07.11
✎
17:36
|
В запросе используется конструкция вида
И Док.Номенклатура.Наименование LIKE "%_%" Т.е. показать Номенклатуру где в наименовании есть символ "_". Не работает. Такое впечатление, что символ "_" служебный. Вопрос: Как его экранировать, или сделать, чтобы запрос отрабатывал правильно? |
|||
1
Fragster
гуру
20.07.11
✎
17:37
|
почитать встроенную справку не предлагать?
|
|||
2
Fragster
гуру
20.07.11
✎
17:37
|
Подобно
Данная операция проверяет соответствие строки переданному шаблону. Значением оператора ПОДОБНО является ИСТИНА, если значение <Выражения> удовлетворяет шаблону, и ЛОЖЬ в противном случае. Следующие символы в <Строке_шаблона> имеют смысл, отличный от просто очередного символа строки: % - процент: последовательность, содержащая ноль и более произвольных символов; _ - подчеркивание: один произвольный символ; […] - один или несколько символов в квадратных скобках: один символ, любой из перечисленных внутри квадратных скобок. В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона; [^…] - в квадратных скобках значок отрицания, за которым следует один или несколько символов: любой символ, кроме тех, которые перечислены следом за значком отрицания; Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки. Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать <Спецсимвол>, указанный после ключевого слова СПЕЦСИМВОЛ (ESCAPE). Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “\” означает подстроку, состоящую из последовательности символов: буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в. Причем эта последовательность может располагаться, начиная с произвольной позиции в строке. |
|||
3
ezmemo
20.07.11
✎
18:09
|
В моем случае это должно выглядеть так?
ГДЕ Док.Номенклатура.Наименование LIKE "%_0w%" СПЕЦСИМВОЛ("_") тоже не правильно отрабатывает. |
|||
4
Живой Ископаемый
20.07.11
✎
18:15
|
это какой-то ужас...
ГДЕ Док.Номенклатура.Наименование LIKE "%\_%" |
|||
5
Живой Ископаемый
20.07.11
✎
18:18
|
не, вру. :) прошу прощения
|
|||
6
Живой Ископаемый
20.07.11
✎
18:19
|
ДЕ Док.Номенклатура.Наименование LIKE "%[_]%"
|
|||
7
Fragster
гуру
20.07.11
✎
18:20
|
мля, в (2) даже нужный пример написан...
|
|||
8
Reset
20.07.11
✎
18:20
|
Например, шаблон
“%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “\” |
|||
9
Reset
20.07.11
✎
18:21
|
LIKE "%\_%" ESCAPE "\"
|
|||
10
Живой Ископаемый
20.07.11
✎
18:23
|
9 и 6 - равнозначны...
|
|||
11
Reset
20.07.11
✎
18:27
|
(10) (6) - имхо читабельней
(9) придется, видимо, применять, если нужно ] указывать как символ внутри [ ] :) |
|||
12
Reset
20.07.11
✎
18:32
|
Зато \_ теоретически может быть производительней чем [_], т.к. это один символ, а не набор. Хотя зависит от оптимизатора этих выражений. Тестировать лень)
|
|||
13
Fragster
гуру
20.07.11
✎
18:33
|
1с как всегда не доделало... CAST 90% преобразований не умеет, вместо регулярок огрызок какой-то...
|
|||
14
Живой Ископаемый
20.07.11
✎
18:38
|
2(12) запрос все равно выполняет сервер СУБД.. так что скорость может разнится от десятка параметров.и потери вносимые "оптимизатором выражений" потеряются на фоне них
|
|||
15
ezmemo
21.07.11
✎
11:59
|
(2)(6)(9) Спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |