Опе­ра­то­ры

При со­зда­нии усло­вия филь­тра­ции ак­ти­вов на язы­ке PDQL для объ­еди­не­ния опе­ран­дов в пре­ди­ка­ты ис­поль­зу­ют­ся опе­ра­то­ры.

Опе­ра­то­ры для со­зда­ния пре­ди­ка­тов усло­вия филь­тра­ции ак­ти­вов

Опе­ра­тор

Зна­че­ние

Син­так­сис

=

Про­вер­ка на ра­вен­ство.

<Опе­ранд> = null не мо­жет при­ме­нять­ся для псев­до­ни­мов

<Опе­ранд> = <Зна­че­ние>

!=

Про­вер­ка нера­вен­ства. Воз­вра­ща­ет true, если ис­ход­ное зна­че­ние рав­но false, и на­о­бо­рот

<Опе­ранд> != <Зна­че­ние>

Для удоб­ства ра­бо­ты вы мо­же­те ис­поль­зо­вать <Опе­ранд> вме­сто <Опе­ранд> != null

>

Про­вер­ка на стро­гое нера­вен­ство (боль­ше)

<Опе­ранд> > <Зна­че­ние>

<

Про­вер­ка на стро­гое нера­вен­ство (мень­ше)

<Опе­ранд> < <Зна­че­ние>

>=

Про­вер­ка на нестро­гое нера­вен­ство (боль­ше или рав­но)

<Опе­ранд> >= <Зна­че­ние>

<=

Про­вер­ка на нестро­гое нера­вен­ство (мень­ше или рав­но)

<Опе­ранд> <= <Зна­че­ние>

IN

Вхож­де­ние зна­че­ния в мас­сив или диа­па­зон

<Опе­ранд> IN [<Зна­че­ние 1>, …, Зна­че­ние N>]

<Опе­ранд> IN <Сеть>

LIKE

Про­вер­ка со­от­вет­ствия стро­ки шаб­ло­ну. Шаб­лон за­да­ет­ся с по­мо­щью зна­ков под­чер­ки­ва­ния (_) и про­цен­та (%). Знак про­цен­та за­ме­ня­ет в шаб­лоне лю­бое ко­ли­че­ство сим­во­лов, а знак под­чер­ки­ва­ния за­ме­ня­ет один сим­вол

<Опе­ранд> LIKE <Шаб­лон>

Пе­ред при­ме­не­ни­ем опе­ра­то­ра все неслу­жеб­ные сим­во­лы при­во­дят­ся к ниж­не­му ре­ги­стру

MATCH

Про­вер­ка со­от­вет­ствия стро­ки шаб­ло­ну. Шаб­лон за­да­ет­ся с по­мо­щью ре­гу­ляр­ных вы­ра­же­ний

<Опе­ранд> MATCH <Шаб­лон>

Пе­ред при­ме­не­ни­ем опе­ра­то­ра все неслу­жеб­ные сим­во­лы при­во­дят­ся к ниж­не­му ре­ги­стру

-

Раз­ность — пе­ри­од в про­шлом

Now() - <Пе­ри­од>

+

Сумма — пе­ри­од в бу­ду­щем

Now() + <Пе­ри­од>

CONTAINS

Про­вер­ка вхож­де­ния ука­зан­но­го зна­че­ния в спи­сок зна­че­ний опе­ран­да

<Опе­ранд> CONTAINS <Зна­че­ние>

INTERSECT

Про­вер­ка пе­ре­се­че­ния мно­жеств зна­че­ний

<Опе­ранд> INTERSECT [Мас­сив зна­че­ний]

Ло­ги­че­ские опе­ра­то­ры ис­поль­зу­ют­ся для объ­еди­не­ния пре­ди­ка­тов в усло­вие филь­тра­ции ак­ти­вов.

Все опе­ра­то­ры ре­ги­стро­не­за­ви­си­мы, то есть при об­ра­бот­ке за­про­са си­сте­ма иг­но­ри­ру­ет ре­гистр сим­во­лов.
Опе­ра­то­ры для со­зда­ния усло­вия филь­тра­ции ак­ти­вов

Опе­ра­тор

Зна­че­ние

Син­так­сис

Коммен­та­рии

AND

Ло­ги­че­ское И

<Пре­ди­кат 1> AND <Пре­ди­кат 2>

Если <Пре­ди­кат 1> дает вы­бор­ку set­Пре­ди­кат1, а <Пре­ди­кат 2> — вы­бор­ку set­Пре­ди­кат2, то <Пре­ди­кат 1> AND <Пре­ди­кат 2> даст вы­бор­ку set­Пре­ди­кат1 пе­ре­се­че­ние set­Пре­ди­кат2

NOT

Ло­ги­че­ское НЕ. По­ло­же­ние опе­ра­то­ра огра­ни­чи­ва­ет вет­ку ак­ти­ва, к ко­то­рой при­ме­ня­ет­ся от­ри­ца­ние вы­пол­не­ния усло­вия

NOT <Пре­ди­кат>

<Пре­ди­кат 1> NOT LIKE <Пре­ди­кат 2>

Вы та­к­же мо­же­те ис­поль­зо­вать кон­струк­ции NOT MATCH, NOT IN, NOT CONTAINS и NOT INTERSECT

За­прос not Host.Softs.Name like 'A' поз­во­ля­ет най­ти все се­те­вые узлы, на ко­то­рых нет ПО, а та­к­же все се­те­вые узлы, на ко­то­рых уста­нов­ле­но хотя бы одно ПО, но ни одно из них не на­зы­ва­ет­ся «A»

За­прос Host.Softs.Name not like 'A' поз­во­ля­ет най­ти все се­те­вые узлы, на ко­то­рых уста­нов­ле­но хотя бы одно ПО, но ни одно из них не на­зы­ва­ет­ся «A»

OR

Ло­ги­че­ское ИЛИ

<Пре­ди­кат 1> OR <Пре­ди­кат 2>

Если <Пре­ди­кат 1> дает вы­бор­ку set­Пре­ди­кат1, а <Пре­ди­кат 2> — вы­бор­ку set­Пре­ди­кат2, то <Пре­ди­кат 1> OR <Пре­ди­кат 2> даст вы­бор­ку set­Пре­ди­кат1 объ­еди­не­ние set­Пре­ди­кат2