Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Mengembalikan jumlah item yang terkandung dalam urutan yang ditentukan oleh $arg.
Sintaks
fn:count($arg as item()*) as xs:integer
Argumen
$arg
Item yang akan dihitung.
Keterangan
Mengembalikan 0 jika $arg adalah urutan kosong.
Contoh
Topik ini menyediakan contoh XQuery terhadap instans XML yang disimpan di berbagai kolom jenis xml di database AdventureWorks.
J. Menggunakan fungsi count() XQuery untuk menghitung jumlah lokasi pusat kerja dalam pembuatan model produk
Kueri berikut menghitung jumlah lokasi pusat kerja dalam proses manufaktur model produk (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
Perhatikan hal berikut ini dari kueri sebelumnya:
Kata kunci namespace di XQuery Prolog mendefinisikan awalan namespace. Awalan kemudian digunakan dalam isi XQuery.
Kueri membuat XML yang menyertakan <
NoOfWorkStations> elemen .Fungsi count() dalam isi XQuery menghitung jumlah <
Location> elemen.
Ini adalah hasilnya:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------------------------
7 HL Touring Frame <NoOfWorkStations>6</NoOfWorkStations>
Anda juga bisa membuat XML untuk menyertakan ID dan nama model produk, seperti yang diperlihatkan dalam kueri berikut:
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
Ini adalah hasilnya:
<NoOfWorkStations ProductModelID="7"
ProductModelName="HL Touring Frame">6</NoOfWorkStations>
Alih-alih XML, Anda dapat mengembalikan nilai-nilai ini sebagai tipe non-xml, seperti yang diperlihatkan dalam kueri berikut. Kueri menggunakan metode value() (jenis data xml) untuk mengambil jumlah lokasi pusat kerja.
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
Ini adalah hasilnya:
ProductModelID Name WorkCtrCount
-------------- ---------------------------------
7 HL Touring Frame 6