Udostępnij przez


Liczba funkcji (XQuery)

Zwraca liczbę elementów, które są zawarte w kolejności określonej przez $arg.

Składnia

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

Argumenty

  • $arg
    Elementy do zliczania.

Uwagi

Zwraca wartość 0, jeśli $arg jest pusta sekwencji.

Przykłady

W tym temacie przedstawiono przykłady XQuery przeciwko wystąpień XML, które są przechowywane w różnych xml wpisz kolumn w AdventureWorks2008R2 bazy danych.Przegląd tych kolumn, zobacz XML reprezentacji typu danych w bazie danych AdventureWorks2008R2.

A.Przy użyciu funkcja XQuery count() do policzenia, ile pracy Centrum lokalizacje w produkcji modelu produktu

Następująca kwerenda zlicza pracy Centrum lokalizacje w procesie produkcji 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;

Poniższe z poprzedniej kwerendy:

  • Nazw słowo kluczowe w XQuery prologu definiuje prefiks obszaru nazw.Prefiks jest następnie używana jako treść XQuery.

  • Kwerenda konstrukcje XML, który zawiera <NoOfWorkStations> elementu.

  • Count() funkcja w XQuery organ zlicza <Location> elementów.

Jest to wynikiem:

ProductModelID Name WorkCtrCount

-------------- ---------------------------------------------------

7 HL Touring Frame <NoOfWorkStations>6</NoOfWorkStations>

Można także konstruować XML identyfikator modelu produktu i nazwa, jak pokazano w następującej kwerendzie:

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;

Jest to wynikiem:

<NoOfWorkStations ProductModelID="7"

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

Zamiast XML może zwrócić te wartości jako xml inny niż typ, jak pokazano w następującej kwerendzie.W kwerendzie użyto value() metoda (typ danych xml) liczba lokalizacji pracy Centrum pobierania.

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;

Jest to wynikiem:

ProductModelID Name WorkCtrCount

-------------- ---------------------------------

7 HL Touring Frame 6

Zobacz także

Odwołanie