Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Returnerar antalet objekt som ingår i sekvensen som anges av $arg.
Syntax
fn:count($arg as item()*) as xs:integer
Arguments
$arg
Föremål att räkna.
Remarks
Returnerar 0 om $arg är en tom sekvens.
Examples
Det här avsnittet innehåller XQuery-exempel mot XML-instanser som lagras i olika XML- typkolumner i AdventureWorks-databasen.
A. Med hjälp av count() XQuery-funktionen för att räkna antalet arbetsplatsplatser i tillverkningen av en produktmodell
Följande fråga räknar antalet arbetsplatsplatser i tillverkningsprocessen för en produktmodell (ProductModelID=7).
SELECT Production.ProductModel.ProductModelID,
Production.ProductModel.Name,
Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
<NoOfWorkStations>
{ count(/AWMI:root/AWMI:Location) }
</NoOfWorkStations>
') as WorkCtrCount
FROM Production.ProductModel
WHERE Production.ProductModel.ProductModelID=7
Observera följande från föregående fråga:
Namnrymdsnyckelordet i XQuery Prolog definierar ett namnrymdsprefix. Prefixet används sedan i XQuery-kroppen.
Frågan konstruerar XML som inkluderar elementet <
NoOfWorkStations> .Count()-funktionen i XQuery-kroppen räknar antalet <
Location> element.
Det här är resultatet:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------------------------
7 HL Touring Frame <NoOfWorkStations>6</NoOfWorkStations>
Du kan också konstruera XML:en för att inkludera produktmodellens ID och namn, som visas i följande fråga:
SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
<NoOfWorkStations
ProductModelID= "{ sql:column("Production.ProductModel.ProductModelID") }"
ProductModelName = "{ sql:column("Production.ProductModel.Name") }" >
{ count(/AWMI:root/AWMI:Location) }
</NoOfWorkStations>
') as WorkCtrCount
FROM Production.ProductModel
WHERE Production.ProductModel.ProductModelID= 7
Det här är resultatet:
<NoOfWorkStations ProductModelID="7"
ProductModelName="HL Touring Frame">6</NoOfWorkStations>
Istället för XML kan du returnera dessa värden som icke-xml-typ, som visas i följande fråga. Frågan använder value()-metoden (xml-datatyp) för att hämta antalet arbetsplatsplatser.
SELECT ProductModelID,
Name,
Instructions.value('declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
count(/AWMI:root/AWMI:Location)', 'int' ) as WorkCtrCount
FROM Production.ProductModel
WHERE ProductModelID=7
Det här är resultatet:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------
7 HL Touring Frame 6