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.
Düğümün $arg ile belirtilen sayısal değerini döndürür.
Syntax
fn:number() as xs:double?
fn:number($arg as node()?) as xs:double?
Arguments
$arg
Değeri bir sayı olarak geri dönecek düğüm.
Remarks
Eğer $arg belirtilmemişse, bağlam düğümünün sayısal değeri çifte dönüştürülür ve döner. SQL Server'da, argüman olmadan fn:number() yalnızca bağlama bağlı bir önlem bağlamında kullanılabilir. Özellikle, yalnızca parantez içinde kullanılabilir ([ ]). Örneğin, aşağıdaki ifade elemanı <ROOT> geri getirir.
declare @x xml
set @x='<ROOT>111</ROOT>'
select @x.query('/ROOT[number()=111]')
Düğümün değeri, XML Şeması Bölüm 2:Veri Tipleri, W3C Öneri'nde tanımlandığı gibi sayısal basit bir türün geçerli bir sözcük temsili değilse, fonksiyon boş bir diziyi döndürür. NaN desteklenmiyor.
Examples
Bu konu, AdventureWorks veritabanındaki çeşitli xml tipi sütunlarda depolanan XML örneklerine karşı XQuery örnekleri sunmaktadır.
A. Bir özniteliğin sayısal değerini almak için number() XQuery fonksiyonu kullanılarak
Aşağıdaki sorgu, Ürün Modeli 7'nin üretim sürecindeki ilk iş merkezi konumundan lot boyutu özniteliğinin sayısal değerini alır.
SELECT ProductModelID, Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
for $i in (//AWMI:root//AWMI:Location)[1]
return
<Location LocationID="{ ($i/@LocationID) }"
LotSizeA="{ $i/@LotSize }"
LotSizeB="{ number($i/@LotSize) }"
LotSizeC="{ number($i/@LotSize) + 1 }" >
</Location>
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
Önceki sorgudan aşağıdakilere dikkat edin:
LotSizeA özniteliği için yapılan sorguda gösterildiği gibi, number() fonksiyonu zorunlu değildir. Bu, XPath 1.0 için bir fonksiyondur ve esas olarak geriye dönük uyumluluk nedenleriyle dahil edilmiştir.
LotSizeB için XQuery sayı fonksiyonunu belirtir ve yedektir.
LotSizeD için yapılan sorgu, aritmetik bir işlemde bir sayı değerinin kullanımını gösterir.
Sonuç şu şekildedir:
ProductModelID Result
----------------------------------------------
7 <Location LocationID="10"
LotSizeA="100"
LotSizeB="100"
LotSizeC="101" />
Uygulama Sınırlamaları
Sınırlamalar şunlardır:
Number() fonksiyonu yalnızca düğümleri kabul eder. Atomik değerleri kabul etmez.
Değerler sayı olarak geri döndürülemezse, number() fonksiyonu NaN yerine boş diziyi döndürür.