Оператор IN в WQL

Мне нужно написать запрос WMI, где мне нужно проверить, что какое-то значение равно одному из значений в списке, но я не обнаружил, что WQL поддерживает оператор IN, такой как SQL.

Например:

SELECT * FROM Device WHERE __CLASS IN ("Device1", "Device20").

Какими способами можно написать этот запрос?

Спасибо.


person Community    schedule 23.10.2013    source источник


Ответы (1)


WMI использует язык WQL, который является лишь подмножеством языка SQL и не включает оператор IN.

Таким образом, вы можете переписать предложение tor с помощью оператора OR, например так

SELECT * FROM Win32_LogicalDisk  Where (DriveType=3) or (DriveType=5)

или используя ваше предложение WQL.

SELECT * FROM Device WHERE (__CLASS="Device1") OR (__CLASS="Device20")
person RRUZ    schedule 23.10.2013
comment
Но в таком случае запрос может сильно вырасти и не работать? - person ; 25.10.2013