У меня есть список десятичных значений в формате XML, отформатированный с помощью итальянской локализации (то есть запятой как разделитель десятичной дроби и точкой в виде разделителя тысяч), и мне нужно преобразовать в десятичные значения.SQL Server Xquery, отбрасываемый до десятичного с локализацией it-IT
XML-как это:
<ROW>
<COSTO>2</COSTO>
<COSTO>3,6</COSTO>
<COSTO>1.005,10</COSTO>
</ROW>
Когда извлекаются, десятичные числа будет:
2
3.6
1005.10
Я использую REPLACE
функцию для удаления точек и преобразовать запятые точки, перед тем использование CONVERT
функция:
CONVERT(decimal(10,2), REPLACE(REPLACE(
XMLDATA.value('(//COSTO)[1]','nvarchar(20)')
, '.',''), ',','.'))
Есть ли какой-либо syn налог, чтобы заставить Xquery читать значение с помощью локализации, чтобы получить значение как десятичное?
Нечто подобное (это не работает):
XMLDATA.value('(//COSTO)[1] with local it-IT','decimal(10,2)')
Благодаря
Какая у вас версия SQL Server? – har07
SQL Server 2008R2 – Radioleao