AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.10.2008, 15:39   #1  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Вопрос по 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  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Попробуйте where status like "SOME*"
__________________
Михаил Андреев
https://www.amand.ru
Старый 20.10.2008, 15:49   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
что то типа этого:
X++:
static void test(Args _args)
{
    InventTable inventTable;
    ;

    select inventTable
        where inventTable.ItemId like 'SOME*';

    info(inventTable.ItemId);
}
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.10.2008, 15:53   #4  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
то есть корень SOME и окончание из буквы
SOME4, например, не подходит по условию задачи, но проходит по маске like "SOME*"
Собственно изначальный вопрос можно свести до следующего: как использовать регулярные выражения в запросах? То есть не бальный while select с вложенным match() а как в самом запросе использовать регулярное выражение, если это вообще возможно.
__________________
Axapta has seduced me deadly!
Старый 20.10.2008, 15:57   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,690 / 1192 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Из руководства разработчика 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  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Вот теперь понятно, спасибо!
__________________
Axapta has seduced me deadly!
Старый 28.07.2022, 15:15   #7  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Из руководства разработчика 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: т.е. полноценных регулярных выражений нет. Либо не определенное количество символов, либо один символ. Но любые символы. Без конкретизации.
В Ax2012 и D365 в этом плане ничего не поменялось ?
__________________
Дмитрий
Старый 28.07.2022, 16:31   #8  
DesparioN is offline
DesparioN
Участник
 
86 / 15 (1) ++
Регистрация: 21.10.2014
Цитата:
Допустим есть некое поле статус
Смущает приведение поля в качестве примера. обычно статус - енум. А по енуму like не работает
Старый 28.07.2022, 22:07   #9  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,690 / 1192 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Насколько я в курсе, ничего не изменилось в синтаксисе 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

("&quot; like "<em>" ) //Resolves to false.
("&quot; like "\*") //Resolves to true.
PS: По поводу "статуса", так новичок в Axapta писал. Сравните дату вопроса и дату регистрации автора темы
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Теги
ax2.5

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос знатокам сиквела CDR DAX: Программирование 31 14.01.2008 14:30
Fred Shen: 'Not Like' in Dynamics AX Blog bot DAX Blogs 0 28.10.2006 16:40
Использование "like" при работе с классом "QueryBuildRange" poul DAX: Программирование 18 11.08.2006 12:20
Возможность использования Like в QueryBuildRange Koriolis DAX: Программирование 5 14.02.2005 17:43
Где работают like'и? Mechanizm DAX: Программирование 4 16.04.2004 11:33

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:38.