Aracılığıyla paylaş


işlev (XQuery) sayısı

Belirtilen sırada içerdiği öğe sayısını döndürür. $arg.

fn:count($arg as item()*) as xs:integer

Bağımsız değişkenler

  • $arg
    Sayılacak öğe'yi tıklatın.

Remarks

0 Verir $arg bir boş dizisidir.

Örnekler

Bu konu, çeşitli içinde depolanan XML örnekleri karşı XQuery örnekler sağlar. XML türü sütunlarındaki AdventureWorks veritabanındaki.Konusuna genel bir bakış bu sütunların her biri için bkz: XML veri türü temsili AdventureWorks veritabanındaki.

C.Iş merkezi konumda üretim ürün modelinin sayısını saymak için count() XQuery işlev kullanma

Yerleşimlerin iş merkezi üretim işleminin bir ürün modelinin aşağıdaki sorgu sayar (Productmodelıd = 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, daha sonra XQuery gövdesine kullanılır.

  • Sorgu içeren bir XML yapıları <NoOfWorkStations> öğe.

  • The count() işlev in the XQuery body counts the number of <Location> elements.

Bu sonucu oluşur:

ProductModelID   Name                 WorkCtrCount     
-------------- ---------------------------------------------------
7             HL Touring Frame  <NoOfWorkStations>6</NoOfWorkStations>   

Ayrıca, aşağıdaki sorguda 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 oluşur:

<NoOfWorkStations ProductModelID="7" 
                  ProductModelName="HL Touring Frame">6</NoOfWorkStations>

XML yerine, aşağıdaki sorguda gösterilen bu değerleri olmayan xml türünde döndürebilir.Sorguyu kullanan Value() yöntem (xml veri türü) , iş merkezi konum sayısı alınamıyor.

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 oluşur:

ProductModelID    Name            WorkCtrCount
-------------- ---------------------------------
7              HL Touring Frame        6