Referens för WIQL-syntax (Work Item Query Language)
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Du kan använda WIQL-syntaxen för att definiera en fråga som en hyperlänk eller när du använder REST API (Work Item Query Language).
WIQL-syntaxen stöder alla funktioner som är tillgängliga via webbportalen Power Query-redigeraren plus några fler. Du kan ange fälten som ska returneras och ange logisk gruppering av frågesatser. Dessutom kan du använda en ASOF
sats för att filtrera baserat på tilldelningar baserat på ett tidigare datum.
Viktigt!
WIQL-syntaxen används för att köra REST-API:et Query By Wiql. För närvarande finns det inget sätt att anropa API:et för att returnera detaljerad information om arbetsobjektet från en WIQL-fråga direkt. Oavsett vilka fält du inkluderar i SELECT-instruktionen returnerar API:et endast arbetsobjektets ID:n. För att få fullständig information måste du utföra två steg: (1) hämta ID:t för arbetsobjekten från en WIQL och (2) hämta arbetsobjekten via Hämta en lista över arbetsobjekt efter ID och för specifika fält.
Förutsättningar
En fråga returnerar endast de arbetsobjekt där du har behörigheten Visa arbetsobjekt eller Visa arbetsobjekt i den här noden . Dessa behörigheter beviljas vanligtvis till medlemmar i grupperna Läsare och Deltagare för varje teamprojekt. Mer information finns i Behörigheter och grupper.
Översikt över frågespråk
Frågespråket för arbetsobjektet innehåller fem delar som visas i följande syntaxfragment och beskrivs i följande tabell. WIQL-syntaxen är inte skiftlägeskänslig.
SELECT
[System.Id],
[System.AssignedTo],
[System.State],
[System.Title],
[System.Tags]
FROM workitems
WHERE
[System.TeamProject] = 'Design Agile'
AND [System.WorkItemType] = 'User Story'
AND [System.State] = 'Active'
ORDER BY [System.ChangedDate] DESC
ASOF '02-11-2020'
Dricks
Genom att installera Wiql Editor Marketplace-tillägget kan du konstruera dina frågor med hjälp av Power Query-redigeraren och sedan visa WIQL-syntaxen. Du kan sedan kopiera och ändra WIQL-syntaxen och köra frågan med wiql playground-hubben som lagts till i Boards.
Klausul
Exempel
SELECT
Identifierar fälten som ska returneras för varje arbetsobjekt som returneras av frågan. Du kan ange antingen det egna namnet eller referensnamnet. Använd hakparenteser ([]) om namnet innehåller blanksteg eller punkter.
FROM
Anger om du vill att frågan ska hitta arbetsobjekt eller länkar mellan arbetsobjekt.
- Använd
FROM WorkItems
för att returnera arbetsobjekt. - Använd
FROM workItemLinks
för att returnera länkar mellan arbetsobjekt. Mer information finns i Frågor om länkar mellan arbetsobjekt senare i den här artikeln.
WHERE
Anger filtervillkoren för frågan. Mer information finns i Filtervillkor (WHERE) senare i den här artikeln.
ORDER BY
Anger sorteringsordningen för de arbetsobjekt som returneras. Du kan ange Stigande (Asc) eller Fallande (Desc) för ett eller flera fält. Till exempel:
ORDER BY [State] Asc, [Changed Date] Desc
ASOF
Anger en historisk fråga genom att ange ett datum för när filtret ska tillämpas. Den här frågan returnerar till exempel alla användarberättelser som definierades som Aktiva den 11 februari 2020. Ange datumet enligt vägledningen i datum- och tidsmönstret.
ASOF '02-11-2020'
Kommentar
WIQL-längden för frågor som görs mot Azure Boards får inte överstiga 32 000 tecken. Systemet tillåter inte att du skapar eller kör frågor som överskrider den längden.
Datum- och tidsmönster
Datum- och tidsmönstret som du anger för DateTime-fälten ska matcha det som du väljer via din profil. Information om hur du visar eller ändrar ditt val finns i Ange användarinställningar.
Citattecken (enkla eller dubbla citattecken stöds) DateTime-literaler som används i jämförelser. De måste vara i .NET DateTime-format för den lokala klientdatorn som kör frågan. Om inte en tidszon har angetts finns DateTime-literaler i tidszonen för den lokala datorn.
WHERE
AND [System.ChangedDate] >= '01-18-2019 GMT'
AND ([Closed Date] < '01-09-2022 GMT'
OR [Resolved Date] >= '01-18-2019 14:30:01')
När tiden utelämnas i en DateTime-literal och dayPrecision-parametern är lika med false antas tiden vara noll (midnatt). Standardinställningen för parametern dayPrecision är false.
Eller så kan du ange ISO 8601-format som är giltigt oavsett språkvariant. ISO 8601 representerar datum och tid genom att börja med året, följt av månad, dag, timme, minuter, sekunder och millisekunder. Till exempel 2021-12-10 15:00:00.000, representerar den 10 december 2021 kl. 15.00 lokal tid. Ett exempel på hur du använder ISO 8601-format är följande.
WHERE
AND [System.ChangedDate] >= '2019-01-18T00:00:00.0000000'
AND ([Closed Date] < '2022-01-09T00:00:00.0000000'
OR [Resolved Date] >= '2019-01-18T00:00:00.0000000')
Anpassade fält
Du kan lägga till ett anpassat fält i en frågesats. Med WIQL måste du ange referensnamnet för det anpassade fältet. För projekt som använder en ärvd processmodell är anpassade fält vanligtvis märkta med Anpassad. läggs till i deras namn och blanksteg tas bort. Till exempel:
Användarvänligt namn | Referensnamn |
---|---|
Godkännare | Custom.Approver |
Typ av begäran | Custom.RequestType |
Uppskatta omfattning | Custom.CustomEstimate |
För projekt som använder den lokala XML-processmodellen definieras referensnamnet av definitionerna för XML-arbetsobjekt.
Mer information finns i Fält och attribut för arbetsobjekt.
Ange filtersatser (WHERE
)
Satsen WHERE
anger filtervillkoren. Frågan returnerar endast arbetsobjekt som uppfyller de angivna kriterierna. Följande exempel-sats WHERE
returnerar till exempel användarberättelser som är aktiva och som har tilldelats dig.
WHERE [Work Item Type] = 'User Story'
AND [State] = 'Active'
AND [Assigned to] = @Me
Du kan styra i vilken ordning logiska operatorer utvärderas genom att omsluta dem inom parenteser för att gruppera filtervillkoren. Om du till exempel vill returnera arbetsobjekt som antingen har tilldelats dig eller som du har stängt ändrar du frågefiltret så att det matchar följande exempel.
WHERE
[System.TeamProject] = @project
AND (
[System.WorkItemType] = 'Product Backlog Item'
AND (
[System.AssignedTo] = @me
OR [Microsoft.VSTS.Common.ClosedBy] = @me
)
)
Filtervillkor
Varje filtervillkor består av tre delar, som var och en måste följa följande regler:
- Fält: Du kan ange antingen referensnamnet eller det egna namnet. Följande exempel är giltig WIQL-syntax:
- Referensnamn:
SELECT [System.AssignedTo] ...
- Eget namn med blanksteg:
SELECT [Assigned To] ...
- Namn utan blanksteg kräver inte hakparenteser:
SELECT ID, Title ...
- Referensnamn:
- Operator: Giltiga värden anges i avsnittet Operatorer senare i den här artikeln.
- Fältvärde: Du kan ange något av följande tre värden beroende på vilket fält som anges.
- Ett literalvärde måste matcha datatypen för fältvärdet.
- En *variabel eller ett makro som anger ett visst värde. Till exempel anger @Me den person som kör frågan. Mer information finns i Makron och variabler senare i den här artikeln.
- Namnet på ett annat fält. Du kan till exempel använda
[Assigned to] = [Changed by]
för att hitta arbetsobjekt som har tilldelats till den person som senast ändrade arbetsobjektet.
En beskrivning och referensnamn för alla systemdefinierade fält finns i Index för arbetsobjektfält.
Operatorer
Frågor använder logiska uttryck för att kvalificera resultatuppsättningar. Dessa logiska uttryck bildas av en eller flera sammanslutna åtgärder.
Några enkla frågeåtgärder visas nedan.
WHERE
[System.TeamProject] = @project
AND [System.WorkItemType] <> ''
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
AND [Microsoft.VSTS.Common.Severity] <> '1 - Critical'
Tabellen nedan sammanfattar alla operatorer som stöds för olika fälttyper. Mer information om varje fälttyp finns i Fält och attribut för arbetsobjekt.
Operatorerna =, <>, >, <, >=, and <=
fungerar som förväntat. Till exempel System.ID > 100
frågor för alla arbetsobjekt med ett ID som är större än 100. System.ChangedDate > '01-01-19 12:00:00'
frågor för alla arbetsobjekt som ändrats efter kl. 12.00 den 1 januari 2019.
Utöver dessa grundläggande operatorer finns det vissa beteenden och operatorer som är specifika för vissa fälttyper.
Kommentar
Vilka operatorer som är tillgängliga för dig beror på din plattform och version. Mer information finns i Snabbreferens för frågor.
Fälttyp
Operatorer som stöds
Booleskt
= , <> , =[Field] , <>[Field]
Datum/tid
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever
Double, GUID, Heltal
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever
Identitet
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Not Contains, In, Not In, In Group, Not In Group, Was Ever
PlainText
Contains Words, Not Contains Words, Is Empty, Is Not Empty
String
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Not Contains, In, Not In, In Group, Not In Group, Was Ever
TreePath
=, <>, In, Not In, Under, Not Under
Logiska grupper
Du kan använda termerna AND
och OR
i typisk boolesk mening för att utvärdera två satser. Du kan använda termerna AND EVER
och OR EVER
när du anger en WAS EVER
operator. Du kan gruppera logiska uttryck och ytterligare förena dem efter behov. Exempel visas nedan.
WHERE
[System.TeamProject] = @project
AND (
[System.WorkItemType] <> ''
AND [System.State] IN ('Active', 'Approved', 'Committed', 'In Progress')
AND (
[System.CreatedBy] = ''
OR [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
)
)
Du kan negera operatorerna contains, under,
och in
med hjälp not
av . Du kan inte negera operatorn ever
. Exemplet nedan frågar efter alla arbetsobjekt som inte har tilldelats under underträdet Fabrikam Fiber\Account Management
i .
WHERE
[System.TeamProject] = @project
AND [System.WorkItemType] <> ''
AND NOT [System.AreaPath] UNDER 'Fabrikam Fiber\Account Management'
Exempelfråga, har någonsin tilldelats till
Följande Power Query-redigeraren exempel hittar alla arbetsobjekt som någonsin har tilldelats Till Jamal Hartnett.
Och här är motsvarande WIQL-syntax.
SELECT
[System.Id],
[System.Title],
[System.State],
[System.IterationPath]
FROM workitems
WHERE
[System.TeamProject] = @project
AND [System.WorkItemType] <> ''
AND EVER [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
Makron eller variabler
I följande tabell visas de makron eller variabler som du kan använda i en WIQL-fråga.
Makro | Förbrukning |
---|---|
@Me | Använd den här variabeln för att automatiskt söka efter den aktuella användarens alias i ett fält som innehåller användaralias. Du kan till exempel hitta arbetsobjekt som du öppnade om du anger kolumnen Fält till Aktiverad av, kolumnen Operator till =och kolumnen Värde till @Me. |
@CurrentIteration | Använd den här variabeln för att automatiskt filtrera efter arbetsobjekt som tilldelats den aktuella sprinten för det valda teamet baserat på den valda teamkontexten. |
@Project | Använd den här variabeln för att söka efter arbetsobjekt i det aktuella projektet. Du kan till exempel hitta alla arbetsobjekt i det aktuella projektet om du ställer in kolumnen Fält på Team Project, kolumnen Operator till =och kolumnen Värde till @Project. |
@StartOfDay @StartOfWeek @StartOfMonth @StartOfYear |
Använd dessa makron för att filtrera DateTime-fält baserat på början av aktuell dag, vecka, månad, år eller en förskjutning till något av dessa värden. Du kan till exempel hitta alla objekt som skapats under de senaste 3 månaderna om du anger kolumnen Fält till Skapad datum, kolumnen Operator till> =och kolumnen Värde till @StartOfMonth – 3. |
@Today | Använd den här variabeln för att söka efter arbetsobjekt som är relaterade till det aktuella datumet eller till ett tidigare datum. Du kan också ändra variabeln @Today genom att subtrahera dagar. Du kan till exempel hitta alla objekt som har aktiverats under den senaste veckan om du anger kolumnen Fält till Aktiverat datum, kolumnen Operator till> =och kolumnen Värde till @Today – 7. |
[Alla] | Använd den här variabeln för att söka efter arbetsobjekt som är relaterade till alla värden som har definierats för ett visst fält. |
@me makro
Makrot @me
ersätter windowsintegrerade kontonamnet för den användare som kör frågan. Exemplet nedan visar hur du använder makrot och motsvarande statiska uttryck. Makrot är avsett för användning med identitetsfält som Assigned To
.
WHERE
[System.AssignedTo] = @Me
@today makro
Du kan använda makrot @today
med valfritt DateTime-fält . Det här makrot ersätter midnatt för det aktuella datumet på den lokala dator som kör frågan. Du kan också ange @today+x
eller @today-y
använda heltalsförskjutningar för x dagar efter @today
respektive y dagar före @today
. En fråga som använder makrot @today
kan returnera olika resultatuppsättningar beroende på vilken tidszon det körs i.
Exemplen nedan förutsätter att dagens datum är 1/3/19.
WHERE
[System.CreatedDate] = @today
Motsvarar:
WHERE
[System.CreatedDate] = '01-03-2019'
och
WHERE
[System.CreatedDate] > @today-2
Motsvarar:
WHERE
[System.CreatedDate] > '01-01-2019'
@StartOfDay, @StartOfWeek, @StartOfMonth, @StartOfYear makron
Du kan använda makrona @StartOf...
med valfritt DateTime-fält . Det här makrot ersätter midnatt för den aktuella dagen, början av veckan, början av månaden eller början av året på den lokala dator som kör frågan.
Kommentar
Kräver Azure DevOps Server 2019 Update 1 eller senare version.
Dessa makron accepterar en modifierarsträng som har formatet (+/-)nn(y|M|w|d|h|m)
. På samma sätt som makrot @Today
kan du ange plus- eller minus heltalsförskjutningar. Om tidsenhetskvalificeraren utelämnas används funktionens naturliga period som standard. Är till exempel @StartOfWeek("+1")
samma som @StartOfWeek("+1w")
. Om plus-/minustecknet (+/-) utelämnas antas plustecknet.
Med den här syntaxen kan du kapsla modifierare och förskjuta frågan två gånger. Satsen Closed Date >= @StartOfYear - 1
filtrerar till exempel arbetsobjekt som har stängts sedan förra året. Genom att ändra den till Closed Date >= @StartOfYear('+3M') - 1
exkluderar den arbetsobjekt som stängts under de första tre månaderna av det senaste året. WIQL-syntaxen visas i följande exempel.
WHERE
[Microsoft.VSTS.Common.ClosedDate] >=@StartOfYear('+3M') - 1
I följande exempel förutsätts att dagens datum är 19-04-05.
WHERE
[Microsoft.VSTS.Common.CreatedDate] >= @StartOfMonth-3
Motsvarar:
WHERE
[Microsoft.VSTS.Common.CreatedDate] >= '01-01-2019'
och
WHERE
[Microsoft.VSTS.Scheduling.TargetDate] > @StartOfYear
Motsvarar:
WHERE
[Microsoft.VSTS.Scheduling.TargetDate] > '01-01-2019'
Anpassade makron
WIQL stöder också godtyckliga anpassade makron. Alla strängar som föregås av ett @
behandlas som ett anpassat makro och ersätts. Ersättningsvärdet för det anpassade makrot hämtas från kontextparametern för frågemetoden i objektmodellen. Följande metod är det API som används för makron:
public WorkItemCollection Query(string wiql, IDictionary context)
Kontextparametern innehåller nyckel/värde-par för makron. Om kontexten till exempel innehåller ett nyckel/värde-par (projekt, MyProject) ersätts @project av MyProject
i WIQL. Den här ersättningen är hur frågeverktyget för arbetsobjekt hanterar det @project makrot i Visual Studio.
Ange historiska frågor (ASOF
)
Du kan använda en ASOF
sats i en fråga för att filtrera efter arbetsobjekt som uppfyller de angivna filtervillkoren som de definierades vid ett visst datum och en viss tid.
Kommentar
Du kan inte skapa ASOF
frågor i frågeverktyget i Visual Studio. Om du skapar en frågefil (.wiq) som innehåller en ASOF
sats och sedan läser in den ASOF
i Visual Studio ignoreras satsen.
Anta att ett arbetsobjekt klassificerades under en iterationssökväg Fabrikam Fiber\Release 1
för och tilldelades till "Jamal Hartnett" före 2022-05-05. Arbetsobjektet tilldelades dock nyligen till "Raisa Pokrovskaya" och flyttades till en ny iterationssökväg i version 2. Följande exempelfråga returnerar arbetsobjekt som tilldelats Jamal Hartnett eftersom frågan baseras på tillståndet för arbetsobjekt från och med ett tidigare datum och en tidigare tid.
SELECT
[System.Id],
[System.Title],
[System.State],
[System.IterationPath]
FROM workitems
WHERE
[System.TeamProject] = @project
AND [System.WorkItemType] <> ''
AND ([System.IterationPath] UNDER 'Fabrikam Fiber\Release 1'
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>')
ASOF '01-05-2022 00:00:00.0000000'
Kommentar
Om ingen tid har angetts använder WIQL midnatt. Om ingen tidszon har angetts använder WIQL tidszonen för den lokala klientdatorn.
Ange sorteringsordningen (ORDER BY
)
Du kan använda ORDER BY
-satsen för att sortera resultatet av en fråga efter ett eller flera fält i stigande eller fallande ordning.
Kommentar
Sorteringsinställningarna för SQL-servern på datanivån avgör standardsorteringsordningen. Du kan dock använda parametrarna asc
eller desc
för att välja en explicit sorteringsordning.
I följande exempel sorteras arbetsobjekt först efter Prioritet i stigande ordning (standard) och sedan efter Skapat datum i fallande ordning (DESC
).
SELECT
[System.Id],
[System.Title],
[System.State],
[System.IterationPath]
FROM workitems
WHERE
[System.TeamProject] = @project
AND [System.WorkItemType] <> ''
AND [System.State] = 'Active'
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
ORDER BY [Microsoft.VSTS.Common.Priority],
[System.CreatedDate] DESC
Fråga efter länkar mellan arbetsobjekt
Om du vill returnera länkar mellan arbetsobjekt anger FROM WorkItemLinks
du . Filtervillkor i WHERE
-satsen kan gälla för länkarna eller för alla arbetsobjekt som är källan eller målet för en länk. Följande fråga returnerar till exempel länkarna mellan Produktpost för kvarvarande uppgifter och deras aktiva underordnade objekt.
SELECT
[System.Id],
[System.Title],
[System.State],
[System.IterationPath]
FROM workitemLinks
WHERE
(
[Source].[System.TeamProject] = @project
AND [Source].[System.WorkItemType] = 'Product Backlog Item'
)
AND (
[System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
)
AND (
[Target].[System.TeamProject] = @project
AND [Target].[System.WorkItemType] <> ''
AND [Target].[System.State] <> 'Closed'
)
ORDER BY [Microsoft.VSTS.Common.Priority],
[System.CreatedDate] DESC
MODE (Recursive)
I följande tabell sammanfattas skillnaderna mellan arbetsobjektsfrågor och frågor för länkar mellan arbetsobjekt.
Klausul
Arbetsobjekt
Länkar mellan arbetsobjekt
FROM
FROM WorkItems
FROM WorkItemLinks
WHERE
[FieldName] = Value
Specify one or more of the following:
[Source].[FieldName] = Value
[Target].[FieldName] = Value
[System.Links.LinkType] = 'LinkName'
MODE
inte tillämpligt
Ange något av följande:
MODE (MustContain)
: (Standard) Returnerar endast WorkItemLinkInfo-poster där kriterierna för källa, mål och länk uppfylls.MODE (MayContain)
: Returnerar WorkItemLinkInfo-poster för alla arbetsobjekt som uppfyller käll- och länkvillkoren, även om inget länkat arbetsobjekt uppfyller målkriterierna.MODE (DoesNotContain)
: Returnerar WorkItemLinkInfo-poster för alla arbetsobjekt som uppfyller källan, endast om ingen länkad arbetsuppgift uppfyller länken och målvillkoren.MODE (Recursive)
: Använd för trädfrågor([System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
). Länktypen måste vara trädtopologi och framåtriktad. Returnerar WorkItemLinkInfo-poster för alla arbetsobjekt som uppfyller källan rekursivt för målet.ORDER BY
ochASOF
är inte kompatibla med trädfrågor.
RETURNS
Du kan ange något av följande systemlänktypnamn.
Du kan ange ett av systemlänktypnamnen, som anges nedan, eller en anpassad länktyp som du har definierat med den lokala XML-processen.
System.LinkTypes.Hierarchy-Forward
System.LinkTypes.Related
System.LinkTypes.Dependency-Predecessor
System.LinkTypes.Dependency-Successor
Microsoft.VSTS.Common.Affects-Forward
(CMMI-process)
Mer information finns i Referens för länktyp.
Frågeexempel för trädtyp
Följande fråga returnerar alla typer av arbetsobjekt som definieras i det aktuella projektet. Frågan som visas i Power Query-redigeraren visas som i följande bild.
Motsvarande WIQL-syntax visas nedan.
SELECT
[System.Id],
[System.Title],
[System.State],
[System.IterationPath]
FROM workitemLinks
WHERE
(
[Source].[System.TeamProject] = @project
AND [Source].[System.WorkItemType] <> ''
AND [Source].[System.State] <> ''
)
AND (
[System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
)
AND (
[Target].[System.TeamProject] = @project
AND [Target].[System.WorkItemType] <> ''
)
MODE (Recursive)
Exempel på direktlänksfrågor
Följande fråga returnerar alla typer av arbetsobjekt som definieras i det aktuella projektet. Frågan som visas i Power Query-redigeraren visas som i följande bild.
Motsvarande WIQL-syntax är som det visas.
SELECT
[System.Id],
[System.WorkItemType],
[System.Title],
[System.AssignedTo],
[System.State]
FROM workitemLinks
WHERE
(
[Source].[System.TeamProject] = @project
AND [Source].[System.WorkItemType] <> ''
AND [Source].[System.State] <> ''
)
AND (
[System.Links.LinkType] = 'System.LinkTypes.Dependency-Reverse'
OR [System.Links.LinkType] = 'System.LinkTypes.Related-Forward'
OR [System.Links.LinkType] = 'System.LinkTypes.Dependency-Forward'
)
AND (
[Target].[System.TeamProject] = @project
AND [Target].[System.WorkItemType] <> ''
AND [Target].[System.ChangedDate] >= @today - 60
)
ORDER BY [System.Id]
MODE (MustContain)
Fler frågeexempel
I följande typiska WIQL-frågeexempel används referensnamn för fälten. Frågan väljer arbetsobjekt (ingen typ av arbetsobjekt har angetts) med prioritet =1. Frågan returnerar ID och Rubrik för returuppsättningen som kolumner. Resultaten sorteras efter ID i stigande ordning.
SELECT
[System.Id],
[System.Title],
[System.State],
[System.IterationPath]
FROM workitems
WHERE
[System.TeamProject] = @project
AND [Microsoft.VSTS.Common.Priority] <> ''
ORDER BY [System.Id]
Datum-tid-mönster
Du anger datum-tid-mönstret enligt ett av två mönster:
- Formatet Datummönster och tidsmönster kommer från dina användarinställningar, tid och nationella inställningar
- Mönstret som anges av UTC, som följer det här mönstret (med Z tillagt till datum-tid).
AND [System.ChangedDate] >= '1/1/2019 00:00:00Z'
Exempelsatser
Följande exempelinstruktioner visar specifika kvalificerande satser.
Klausul
Exempel
AND
SELECT [System.Id], [System.Title]
FROM WorkItems
WHERE [System.TeamProject] = @project
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
OR
SELECT [System.Id], [System.Title]
FROM WorkItems
WHERE [System.TeamProject] = @project
AND ( [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
OR [System.AssignedTo] = ''Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>' )
NOT
SELECT [System.Id], [System.Title]
FROM WorkItems
WHERE [System.TeamProject] = @project
AND [System.AssignedTo] EVER 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
AND [System.AssignedTo] NOT CONTAINS 'Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>'
EVER
SELECT [System.Id], [System.Title]
FROM WorkItems
WHERE [System.TeamProject] = @project
AND [System.AssignedTo] EVER 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
UNDER
SELECT [System.Id], [System.Title]
FROM WorkItems
WHERE [System.TeamProject] = @project
AND [System.AssignedTo] EVER 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
AND [System.AreaPath] UNDER 'Agile1\Area 0'
ORDER BY
SELECT [System.Id], [System.Title]
FROM WorkItems
WHERE [System.TeamProject] = @project
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
ORDER BY [System.Id] [asc | desc]
ASOF
(Tidsfilter)
SELECT [System.Title]
FROM workitems
WHERE [System.IterationPath] = 'MyProject\Beta'
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
ASOF '3/16/19 12:30'
Sträng och oformaterad text
Citatsträngliteraler (enkla eller dubbla citattecken stöds) i en jämförelse med ett sträng- eller oformaterad textfält. Strängliteraler stöder alla Unicode-tecken.
WHERE [Custom.Blocking] = 'Not Blocking'
WHERE [Custom.Blocking] <> 'Blocked'
Du kan använda contains-operatorn för att söka efter en delsträng var som helst i fältvärdet.
WHERE [System.Description] contains 'WIQL'
Område och iteration (TreePath)
Du kan använda operatorn UNDER
för fälten Område och Iteration Path. Operatorn UNDER
utvärderar om ett värde ligger inom underträdet för en specifik klassificeringsnod. Uttrycket nedan skulle till exempel utvärderas till sant om områdessökvägen var "MyProject\Server\Administration", "MyProject\Server\Administration\Feature 1", "MyProject\Server\Administration\Feature 2\SubFeature 5" eller någon annan nod i underträdet.
WHERE [System.AreaPath] UNDER 'MyProject\Server\Administration'
Modifierare och särskilda operatorer
Du kan använda vissa modifierare och särskilda operatorer i ett frågeuttryck.
Använd operatorn IN
för att utvärdera om ett fältvärde är lika med någon av en uppsättning värden. Den här operatorn stöds för fälttyperna String, Integer, Double och DateTime. Se följande exempel tillsammans med dess semantiska motsvarighet.
WHERE
[System.TeamProject] = @project
AND [System.CreatedBy] IN ('Jamal Hartnett <fabrikamfiber4@hotmail.com>', 'Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>', 'Christie Church <fabrikamfiber1@hotmail.com>')
or
WHERE
[System.TeamProject] = @project
AND (
[System.CreatedBy] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
OR [System.CreatedBy] = 'Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>'
OR [System.CreatedBy] = 'Christie Church <fabrikamfiber1@hotmail.com>'
)
Operatorn EVER
används för att utvärdera om ett fältvärde är lika med eller någonsin har motsvarat ett visst värde under alla tidigare revisioner av arbetsobjekt. Fälttyperna String, Integer, Double och DateTime stöder den här operatorn. Det finns alternativa syntaxer för operatorn EVER
. Kodfragmenten nedan frågar till exempel om alla arbetsobjekt någonsin har tilldelats Jamal, Raise eller Christie.
WHERE
[System.TeamProject] = @project
AND (
EVER [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
OR EVER [System.AssignedTo] = 'Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>'
OR EVER [System.AssignedTo] = 'Christie Church <fabrikamfiber1@hotmail.com>'
)