Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
$arg tarafından belirtilen dizide yer alan öğeler sayısını döndürür.
Syntax
fn:count($arg as item()*) as xs:integer
Arguments
$arg
Sayılması gereken eşyalar.
Remarks
Eğer $arg boş bir dizis ise 0 döner.
Examples
Bu konu, AdventureWorks veritabanındaki çeşitli xml türü sütunlarında depolanan XML örneklerine karşı XQuery örnekleri sağlar.
A. Bir ürün modelinin üretimindeki çalışma merkezi konumlarının sayısını saymak için count() XQuery fonksiyonu kullanılarak
Aşağıdaki sorgu, bir ürün modelinin üretim sürecindeki iş merkezi konumlarının sayısını 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:
XQuery Prolog'dakiisim alanı anahtar kelimesi bir isim alanı öneki tanımlar. Bu ön ek daha sonra XQuery gövdesinde kullanılır.
Sorgu, öğeyi <
NoOfWorkStations> içeren XML oluşturur.XQuery gövdesindeki count() fonksiyonu, eleman <
Location> sayısını sayar.
Sonuç şu şekildedir:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------------------------
7 HL Touring Frame <NoOfWorkStations>6</NoOfWorkStations>
Ayrıca XML'i ürün model kimliği ve adını da dahil edecek şekilde oluşturabilirsiniz, aşağıdaki sorguda gösterildiği gibi:
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
Sonuç şu şekildedir:
<NoOfWorkStations ProductModelID="7"
ProductModelName="HL Touring Frame">6</NoOfWorkStations>
XML yerine, bu değerleri aşağıdaki sorguda gösterildiği gibi xml olmayan tip olarak döndürebilirsiniz. Sorgu, çalışma merkezi konum sayısını almak için value() yöntemini (xml veri türü) kullanır.
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
Sonuç şu şekildedir:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------
7 HL Touring Frame 6