20.10.2008, 15:39 | #1 |
Участник
|
Вопрос по like
Понимает ли оператор like регулярные выражения или же из служебных символов только вайлдкард для поиска по маске. Допустим есть некое поле статус, необходимо отобрать все записи, где это поле принимает значение из диапазона SOMEA - SOMEZ, то есть корень SOME и окончание из буквы, конечно, можно написать where status>=SOMEA && status<=SOMEZ, но приятней было было where status like "SOME:a"
__________________
Axapta has seduced me deadly! |
|
20.10.2008, 15:46 | #2 |
Участник
|
Попробуйте where status like "SOME*"
|
|
20.10.2008, 15:49 | #3 |
Ищущий знания...
|
что то типа этого:
X++: static void test(Args _args) { InventTable inventTable; ; select inventTable where inventTable.ItemId like 'SOME*'; info(inventTable.ItemId); }
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
20.10.2008, 15:53 | #4 |
Участник
|
Цитата:
то есть корень SOME и окончание из буквы
Собственно изначальный вопрос можно свести до следующего: как использовать регулярные выражения в запросах? То есть не бальный while select с вложенным match() а как в самом запросе использовать регулярное выражение, если это вообще возможно.
__________________
Axapta has seduced me deadly! |
|
20.10.2008, 15:57 | #5 |
Участник
|
Из руководства разработчика Axapta по опции LIKE в версии 2.5
Returns true if expression1 is like expression2. like can use * as a wildcard for zero or more characters and ? as wildcard for one character. Note: As like is evaluated by the underlying SQL, the result may differ on different installations. ---- “Jones” like “Jo?es” true, the ? is equal to all characters “Central Intelligence Agency” like “Ce*” true, the * is equal to zero or more characters PS: т.е. полноценных регулярных выражений нет. Либо не определенное количество символов, либо один символ. Но любые символы. Без конкретизации. |
|
|
За это сообщение автора поблагодарили: HorrR (1). |
20.10.2008, 16:12 | #6 |
Участник
|
Вот теперь понятно, спасибо!
__________________
Axapta has seduced me deadly! |
|
28.07.2022, 15:15 | #7 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
Из руководства разработчика Axapta по опции LIKE в версии 2.5
Returns true if expression1 is like expression2. like can use * as a wildcard for zero or more characters and ? as wildcard for one character. Note: As like is evaluated by the underlying SQL, the result may differ on different installations. ---- “Jones” like “Jo?es” true, the ? is equal to all characters “Central Intelligence Agency” like “Ce*” true, the * is equal to zero or more characters PS: т.е. полноценных регулярных выражений нет. Либо не определенное количество символов, либо один символ. Но любые символы. Без конкретизации.
__________________
Дмитрий |
|
28.07.2022, 16:31 | #8 |
Участник
|
Цитата:
Допустим есть некое поле статус
|
|
28.07.2022, 22:07 | #9 |
Участник
|
Насколько я в курсе, ничего не изменилось в синтаксисе Like. По прежнему регулярные выражения в нем невозможны в X++
https://docs.microsoft.com/en-us/dyn...ref/xpp-syntax Цитата:
like
Tests for matches by pattern, with wildcard symbols * and ?. The string on the right side of the operator must use four backslash characters to represent one backslash. Examples follow: like ("" like "<em>" ) //Resolves to false. ("" like "\*") //Resolves to true.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|