Aracılığıyla paylaş


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