Istruzione SELECT per le query di dati

È possibile usare un'ampia gamma di istruzioni SELECT per eseguire query per ottenere informazioni. Le istruzioni possono essere istruzioni di base oppure possono essere più restrittive per restringere il set di risultati restituito dalla query.

L'esempio seguente è un'istruzione SELECT di base usata per eseguire query sui dati.

SELECT * FROM Class

Questa istruzione restituisce istanze della classe specificata e di una delle relative sottoclassi. Sono incluse tutte le proprietà di sistema e definite dall'utente per le classi. Se una proprietà di sistema non è rilevante per una query specifica, contiene NULL.

È possibile usare diverse tecniche per ridurre la larghezza di banda necessaria per recuperare il set di risultati, se l'esecuzione della query comporta un sovraccarico eccessivo e l'utente è interessato solo a un subset delle proprietà. Prima di tutto, le query possono sostituire l'asterisco con le proprietà desiderate.

Nell'esempio seguente viene illustrato come eseguire una query per proprietà specifiche.

SELECT property_1, property_2, property_3 FROM class

Il set di risultati include tutte le proprietà di sistema e le proprietà non di sistema specificate.

Un'altra tecnica per limitare l'ambito del set di risultati di una query consiste nell'usare la proprietà di sistema __CLASS . Per impostazione predefinita, le query restituiscono tutte le istanze della classe specificata e le relative sottoclassi. È possibile utilizzare la proprietà di sistema __CLASS per richiedere solo istanze della classe specificata, escluse le relative sottoclassi.

Nell'esempio seguente viene illustrato come utilizzare la proprietà di sistema __CLASS in una clausola WHERE.

SELECT * FROM Device WHERE __CLASS = "Device"

È anche possibile utilizzare la proprietà di sistema __CLASS per limitare il set di risultati a istanze di determinate sottoclassi.

Nell'esempio seguente viene illustrato come limitare il set di risultati alle istanze di determinate sottoclassi.

SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"

Nota

Se si costruisce una query con un percorso non valido per un oggetto incorporato, la query non restituisce un errore o alcun risultato.

 

Nell'esempio seguente viene restituita un'istanza di MainClass, presupponendo che esista un'istanza di MainClass contenente l'oggetto incorporato EmbedObj con una proprietà P_Uint32 uguale a "70011".

SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011

Nell'esempio seguente non vengono restituiti risultati e non viene restituito un errore, presupponendo che l'oggetto incorporato EmbedObj nell'istanza di MainClass non abbia una proprietà INVALID.

SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011