數據查詢的 SELECT 語句
您可以使用各種不同的 SELECT 語句來查詢資訊。 這些語句可以是基本語句,也可以限制為縮小從查詢傳回的結果集。
下列範例是用來查詢數據的基本 SELECT 語句。
SELECT * FROM Class
這個語句會傳回指定類別及其任何子類別的實例。 包含類別的所有系統和使用者定義屬性。 如果系統屬性與特定查詢無關,它就會包含 null 。
您可以使用數種技術來減少擷取結果集所需的頻寬,如果查詢的執行造成太多額外負荷,而且使用者只對屬性的子集感興趣。 首先,查詢可以將星號取代為所需的屬性。
下列範例示範如何查詢特定屬性。
SELECT property_1, property_2, property_3 FROM class
結果集包含所有系統屬性和指定的非系統屬性。
縮小查詢結果集範圍的另一個技巧是使用 __CLASS 系統屬性。 查詢預設會傳回指定類別及其子類別的所有實例。 您可以使用 __CLASS 系統屬性,只要求指定類別的實例,但不包括其子類別。
下列範例示範如何在 WHERE 子句中使用 __CLASS 系統屬性。
SELECT * FROM Device WHERE __CLASS = "Device"
您也可以使用 __CLASS 系統屬性,將結果集限制為特定子類別的實例。
下列範例示範如何將結果集限制為特定子類別的實例。
SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"
注意
如果您為內嵌物件建構路徑無效的查詢,則查詢不會傳回錯誤或任何結果。
下列範例會傳回 mainClass 實例,假設 MainClass 的實例包含內嵌物件 EmbedObj,其屬性 P_Uint32 等於 “70011”。
SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011
下列範例不會傳回任何結果,而且不會傳回錯誤,假設 main Class 實例中的內嵌物件 EmbedObj 沒有屬性 INVALID。
SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011