【发布时间】:2013-10-23 00:42:58
【问题描述】:
我需要编写一个 WMI 查询,我需要检查某个值是否等于列表中的某个值,但我没有发现 WQL 支持像 SQL 这样的 IN 运算符。
例如:
SELECT * FROM Device WHERE __CLASS IN ("Device1", "Device20").
这个查询有哪些写法?
谢谢。
【问题讨论】:
我需要编写一个 WMI 查询,我需要检查某个值是否等于列表中的某个值,但我没有发现 WQL 支持像 SQL 这样的 IN 运算符。
例如:
SELECT * FROM Device WHERE __CLASS IN ("Device1", "Device20").
这个查询有哪些写法?
谢谢。
【问题讨论】:
WMI 使用 WQL 语言,它只是 SQL 语言的一个子集,不包括 IN 运算符。
所以你可以使用 OR 运算符重写 tor 语句,就像这样
SELECT * FROM Win32_LogicalDisk Where (DriveType=3) or (DriveType=5)
或者使用你的 WQL 语句。
SELECT * FROM Device WHERE (__CLASS="Device1") OR (__CLASS="Device20")
【讨论】: