WQL нравится и не нравится комбинация нескольких значений - PullRequest
0 голосов
/ 20 апреля 2020

Я хочу использовать WQL-запрос для фильтрации устройств в коллекции устройств SCCM по следующим критериям: Имя содержит CS, MON, AVS, WUG, FS или IBM, а не DR или LON

Вот мой query:

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where SMS_R_System.Name like "%CS%" or SMS_R_System.Name like "%MON%" or SMS_R_System.Name like "%AVS%" or SMS_R_System.Name like "%WUG%" or SMS_R_System.Name like "%FS%" and SMS_R_System.Name not like "%DR%" and SMS_R_System.Name not like "%LON%"

Я также пробовал оператор 'not' перед именем поля:

...and not SMS_R_System.Name like "%DR%" and not SMS_R_System.Name like "%LON%"

Однако оператор 'not' игнорируется в любом случае.

Это прекрасно работает, если я просто использовал один аргумент 'like' и один 'not like' вместе, но добавление любых дополнительных значений 'like', кажется, мешает этому работать.

Я почти уверен, что я Пытаюсь сделать, можно сделать, но, очевидно, что-то упущено. Есть идеи?

1 Ответ

0 голосов
/ 22 апреля 2020

Используя советы, предоставленные Syberdoor, мне удалось добиться этого, используя круглые скобки вокруг одинаковых и не похожих друг на друга операторов, эффективно создавая группу, состоящую из одинаковых и не похожих друг на друга, а не многих:

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where (SMS_R_System.Name like "%CS%" or SMS_R_System.Name like "%MON%" or SMS_R_System.Name like "%AVS%" or SMS_R_System.Name like "%WUG%" or SMS_R_System.Name like "%FS%" or SMS_R_System.Name like "%IBM%") and not (SMS_R_System.Name like "%DR%" or SMS_R_System.Name like "%LON%")

Спасибо за внимание.

...