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.