Udostępnij przez


numer funkcja (XQuery)

Zwraca wartość liczbową węzła, który jest wskazywany przez $arg.

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

Argumenty

  • $arg
    Węzeł, którego wartość będą zwracane w postaci liczby.

Remarks

Jeśli $arg to nie jest określona, to wartość liczbowa węzła kontekstu, konwertowane na podwójne, jest zwracany. W programie SQL Server FN:Number() bez argumentu można używać tylko w kontekście predykat zależne od kontekstu.W szczególności go może być używana tylko wewnątrz nawiasów kwadratowych ([]).Na przykład, następujące wyrażenie zwróci <ROOT> element.

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

Jeśli wartość węzła nie jest prawidłowy leksykalne reprezentacji liczbowych typu prostego, zgodnie z definicją w 2:Datatypes części schematu XML, zalecenia konsorcjum W3C, funkcja zwraca sekwencję puste.NaN nie jest obsługiwana.

Przykłady

W tym temacie przedstawiono przykłady XQuery przed przechowywane w różnych wystąpień XML XML typu kolumny bazy danych AdventureWorks.Aby uzyskać ogólne informacje o każdej z tych kolumn zobacz xml Data Type Representation in the AdventureWorks Database.

A.Za pomocą funkcja XQuery number() pobrać numerycznych wartości atrybut

Następująca kwerenda pobiera wartość liczbową atrybut wielkość partii z pierwszą pracy gniazda lokalizację w procesie produkcyjnym 7 modelu produktu.

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

Pierwszy przycisk jest przyciskiem domyślnym.

  • The number() funkcja is not required, as shown by the query for the LotSizeA atrybut.To jest funkcją XPath 1.0 i stanowi przede wszystkim dla zachowania zgodności z poprzednimi wersjami przyczyn.

  • XQuery dla LotSizeB określa funkcja liczb i jest zbędne.

  • Kwerendy dla LotSizeD ilustruje użycie wartość liczbową w operacji arytmetycznej.

To jest wynik:

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

defaultButton

Ograniczenia są następujące:

  • The number() funkcja only accepts nodes.niepodzielny wartości nie są akceptowane.

  • Jeśli wartości nie może być zwracana w postaci liczby, Number() , funkcja zwraca pusty sekwencji zamiast NaN.