Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Vrátí počet položek obsažených v posloupnosti určené $arg.
Syntax
fn:count($arg as item()*) as xs:integer
Argumenty
$arg
Položky, které se mají spočítat.
Poznámky
Vrátí hodnotu 0, pokud je $arg prázdná sekvence.
Příklady
Toto téma obsahuje příklady XQuery pro instance XML, které jsou uloženy v různých xml sloupce typu v databázi AdventureWorks.
A. Pomocí funkce count() XQuery spočítáte počet umístění pracovních center při výrobě modelu produktu.
Následující dotaz spočítá počet umístění pracovních center ve výrobním procesu modelu produktu (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
Všimněte si následujících věcí z předchozího dotazu:
Klíčové slovo oboru názvů v XQuery Prolog definuje předponu oboru názvů. Předpona se pak použije v těle XQuery.
Dotaz vytvoří XML, který obsahuje <
NoOfWorkStations
> element.Funkce count() v těle XQuery spočítá počet prvků <
Location
>.
Toto je výsledek:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------------------------
7 HL Touring Frame <NoOfWorkStations>6</NoOfWorkStations>
Kód XML můžete také vytvořit tak, aby zahrnoval ID a název modelu produktu, jak je znázorněno v následujícím dotazu:
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
Toto je výsledek:
<NoOfWorkStations ProductModelID="7"
ProductModelName="HL Touring Frame">6</NoOfWorkStations>
Místo XML můžete tyto hodnoty vrátit jako jiný než xml typ, jak je znázorněno v následujícím dotazu. Dotaz používá metodu value() (datový typ XML) k načtení počtu umístění pracovního centra.
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
Toto je výsledek:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------
7 HL Touring Frame 6
Viz také
funkce XQuery proti datového typu XML