XML.value()
выполняет следующие действия:
declare @Test xml = '<collection><object parentid="ce57cc75-3966-478f-bf25-5e3abf716f96" parenttype="Object"><fields><field name="code"><value>BL2</value></field></fields></object></collection>';
select @Test.value('(/collection/object/fields/field/value)[1]', 'varchar(3)' )
Возвращает:
BL2
Так что добавьте это к вашему запросу:
select A.[business_line].value('(/collection/object/fields/field/value)[1]', 'varchar(3)'
from [EU_OTH_REG].[dbo].[TBL_EU_OTH_TXN_REG_RSDS] A
inner join [EU_OTH_REG].[dbo].[TBL_EU_OTH_REG_MST_LOOKUP] B
on B.code = A.product_substance_type
Поскольку вы указали, что A.[business_line]
не относится к типу данных XML
, просто преобразуйте его перед вызовом value
:
convert(xml, A.[business_line]).value
Примечание: я предположил, что в нем всего 3 символарезультат, т.е. varchar(3)
, но если не отрегулировать под костюм.