Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Zwraca liczbę elementów zawartych w sekwencji określonej przez $arg.
Składnia
fn:count($arg as item()*) as xs:integer
Argumenty
$arg
Elementy do zliczenia.
Uwagi
Zwraca wartość 0, jeśli $arg jest pustą sekwencją.
Przykłady
Ten temat zawiera przykłady zapytań XQuery dla wystąpień XML przechowywanych w różnych kolumnach xml typów w bazie danych AdventureWorks.
A. Użycie funkcji count() XQuery w celu zliczenia liczby lokalizacji centrum pracy w produkcji modelu produktu
Następujące zapytanie zlicza lokalizacje centrum pracy w procesie produkcyjnym 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
Zwróć uwagę na następujące elementy z poprzedniego zapytania:
przestrzeni nazw słowo kluczowe w XQuery Prolog definiuje prefiks przestrzeni nazw. Prefiks jest następnie używany w treści XQuery.
Zapytanie konstruuje kod XML zawierający element <
NoOfWorkStations>.Funkcja count() w treści XQuery zlicza elementy <
Location>.
Jest to wynik:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------------------------
7 HL Touring Frame <NoOfWorkStations>6</NoOfWorkStations>
Możesz również skonstruować kod XML, aby uwzględnić identyfikator i nazwę modelu produktu, jak pokazano w poniższym zapytaniu:
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 wynik:
<NoOfWorkStations ProductModelID="7"
ProductModelName="HL Touring Frame">6</NoOfWorkStations>
Zamiast xml możesz zwrócić te wartości jako typ inny niż xml, jak pokazano w poniższym zapytaniu. Zapytanie używa metody value() (typ danych XML) w celu pobrania liczby lokalizacji centrum roboczego.
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 wynik:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------
7 HL Touring Frame 6