You can use the WHERE clause to narrow the scope of a query. The WHERE clause can contain a property or key word, an operator, and a constant. All WHERE clauses must specify one of the predefined WQL operators.
The basic syntax for appending the WHERE clause to the SELECT statement is:
SELECT instance FROM class WHERE expression |
The expression is composed of a property or key word, an operator, and a constant. You can append the WHERE clause to the SELECT statement using one of the following forms:
SELECT instance FROM class [[WHERE property operator constant]] |
SELECT instance FROM class [[WHERE constant operator property]] |
Valid WHERE clauses follow these rules:
The value of the constant must be of the correct data type for the property.
The operator must be one of the valid WQL operators listed in Table 4–4.
Either a property name or a constant must appear on either side of the operator in the WHERE clause.
Arbitrary arithmetic expressions cannot be used. For example, the following query returns only instances of the Solaris_Printer class that represent a printer with ready status:
SELECT * FROM Solaris_Printer WHERE Status = “ready” |
The following is an invalid query:
SELECT * FROM PhysicalDisk WHERE Partitions < (8 + 2 - 2) |
Multiple groups of properties, operators, and constants can be combined in a WHERE clause using logical operators and parenthetical expressions. Each group must be joined with the AND, OR, or NOT operators as shown in the following table.
Table 4–6 Queries Using Logical Operators
Example Query |
Description |
---|---|
SELECT * FROM Solaris_FileSystem WHERE Name= "home" OR Name= "files" |
Retrieves all instances of the Solaris_FileSystem class with the Name property set to either home or files. |
SELECT * FROM Solaris_FileSystem WHERE (Name = “home” OR Name = “files”) AND AvailableSpace > 2000000 AND FileSystem = “Solaris” |
Retrieves disks named home and files only if they have a certain amount of available space remaining and have Solaris file systems. |