Count işlevi (XQuery)
İçerdiği öğeleri tarafından belirtilen sırada verir $arg.
Sözdizimi
fn:count($arg as item()*) as xs:integer
Bağımsız değişkenler
- $arg
Öğeleri saymak için.
Açıklamalar
Hatalı döndürürse 0 $arg boş bir sıra.
Örnekler
Bu konuda çeşitli içinde depolanan xml örnekleri karşı XQuery örnekler sağlar xml sütunları yazın AdventureWorks2008R2 veritabanı.Bir bakış bu sütunların her biri için bkz: XML veri türü temsili AdventureWorks2008R2 veritabanında.
A.Count() XQuery kullanarak işlev iş merkezi konumlarda üretim ürün modelinin saymak için
Aşağıdaki sorgu bir ürün modelinin üretim süreci içinde iş merkezi konumları sayar (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;
Önceki sorgudan aşağıdakilere dikkat edin:
The namespace keyword in XQuery Prolog defines a namespace prefix.Önek sonra XQuery gövde içinde kullanılır.
Sorgu içeren bir xml yapıları <NoOfWorkStations> öğesi.
The count() function in the XQuery body counts the number of <Location> elements.
Bu sonucu verir:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------------------------
7 HL Touring Frame <NoOfWorkStations>6</NoOfWorkStations>
Ayrıca, aşağıdaki sorgu gösterildiği gibi ürün modeli kimliği ve adı dahil etmek için xml gerçekleştirebilmesi:
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;
Bu sonucu verir:
<NoOfWorkStations ProductModelID="7"
ProductModelName="HL Touring Frame">6</NoOfWorkStations>
xml yerine, aşağıdaki sorgu gösterildiği gibi bu değerleri olmayan xml türü olarak döndürebilir.Sorguyu kullanır value() yöntem (xml veri türü) iş merkezi konum sayısını almak için.
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;
Bu sonucu verir:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------
7 HL Touring Frame 6