Aracılığıyla paylaş


sayıişlev (XQuery)

Düğüm tarafından belirtilen sayısal değerini verir. $arg.

fn:number() as xs:double? 
fn:number($arg as node()?) as xs:double?

Bağımsız değişkenler

  • $arg
    Düğümü bir sayı değeri döndürdü.

Remarks

If $arg olan belirtilmedi, bir çift için dönüştürülmüş içerik düğümün, sayısal bir değer döndürdü. SQL Server'da fn:Number() bir bağımsız değişken olmadan, yalnızca bir içerik bağımlı yüklemi içeriğinde kullanılabilir.Özellikle, yalnızca köşeli ayraçlar ([]) içinde kullanılabilir.Örneğin, aşağıdaki ifade döndürür <ROOT> öğe.

declare @x xml
set @x='<ROOT>111</ROOT>'
select @x.query('/ROOT[number()=111]')

Düğüm değerini sayısal bir basit tür geçerli sözlü sunumunu tanımlandığı gibi değilse XML şeması bölümü 2:Datatypes W3C önerisi, işlev, boş bir dizisi verir.NaN desteklenmiyor.

Örnekler

Bu konu, çeşitli içinde depolanan XML örnekleri karşı XQuery örnekler sağlar. XML türü sütunlarındaki AdventureWorks veritabanındaki.Konusuna genel bir bakış bu sütunların her biri için bkz: XML veri türü temsili AdventureWorks veritabanındaki.

C.Sayısal değerini almak için number() XQuery işlevni kullanarak bir öznitelik

Lot boyutunu sayısal değerini aşağıdaki sorgu alır öznitelik ilk iş merkezi konumdan Üretim işleminde ürün model 7.

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:

  • The number() işlev is not required, as shown by the query for the LotSizeA öznitelik.Bir XPath 1.0 işlevidir ve öncelikle geriye dönük uyumluluk nedeniyle eklenmiştir.

  • Için XQuery LotSizeB sayı işlev belirtir; yedek.

  • Sorgu için LotSizeD , bir sayı değeri bir aritmetik işlemde kullanımını gösterir.

Bu sonucu oluşur:

ProductModelID   Result
----------------------------------------------
7              <Location LocationID="10" 
                         LotSizeA="100" 
                         LotSizeB="100" 
                         LotSizeC="101" />

Uygulama kısıtlamaları

Sınırlamaları şunlardır:

  • The number() işlev only accepts nodes.Atomik değerleri kabul etmiyor.

  • Değer bir sayı döndürüldü, Number() işlev NaN yerine boş sırasını döndürür.