[WQL] Not Like / Where Not / ...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Eerst en vooral: ik heb geen ervaring met WQL. De nood om WQL te gebruiken is er omdat ik een script uit een labo wil herschrijven voor een productieomgeving. Momenteel vraag ik alle properties op en dan doe ik in PoSh een pipe naar Where-Object. Het nadeel van deze methode is dat ik alle properties binnentrek en dan een filter toepas, terwijl het efficiënter is om enkel de data die ik wil binnen te trekken vanuit de bron.

Probleem: NOT LIKE. Wat opzoekingswerk leert me dat dit niet bestaat in WQL. Dit viel als volgt op te lossen:

SQL:
1
SELECT Name FROM $SMSClass WHERE NOT SystemOUName LIKE '%server%' 


Je kan dus blijkbaar wel WHERE NOT doen. Maar: er is een tweede voorwaarde.

SQL:
1
SELECT Name FROM $SMSClass WHERE NOT SystemOUName LIKE '%server%' AND SystemOUName LIKE '%$DG%'


En dat werkt natuurlijk niet, aangezien de WHERE aan de NOT vast hangt. Wat ik wil is het equivalent van:

SQL:
1
SELECT Name FROM $SMSClass WHERE (SystemOUName NOT LIKE '%server%') AND (SystemOUName LIKE '%$DG%')


Als iemand een oplossing voor het ontbreken van "NOT LIKE" kent hoor ik het graag.

[ Voor 3% gewijzigd door YellowOnline op 14-02-2011 13:13 ]


Acties:
  • 0 Henk 'm!

  • gvdh
  • Registratie: December 2009
  • Laatst online: 13:14
Kun je geen haakjes gebruiken in WQL?

SQL:
1
SELECT Name FROM $SMSClass WHERE (NOT SystemOUName LIKE '%server%') AND (SystemOUName LIKE '%$DG%')

Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 11:02
Een van de eerste hits met google is MSDN: WQL (SQL for WMI) (Windows)

Ik zie daar geen 'WHERE NOT', maar gewoon een losse NOT-operator. Ik zie niets over operator precedence, maar met haakjes zou het in elk geval moeten werken lijkt me (of je zet de NOT in het tweede deel van de AND). In het NOT-voorbeeld wordt trouwens wel de NOT herhaald voor het tweede deel van de AND, wat de verwachting wekt dat jouw query (zonder haakjes) zou moeten werken zoals je wilt.

Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Euh, het was inderdaad zo eenvoudig :$ Ik had bovenvermelde pagina op MSDN gezien, maar verkeerdelijk geïnterpeteerd: ik dacht dat de NOT per definitie aan de WHERE vasthing en dat is blijkbaar niet zo. :X

Dankuwel ;)

[ Voor 3% gewijzigd door YellowOnline op 14-02-2011 14:27 ]