Если конструкция этого XML находится под вашим контролем, вы должны попытаться изменить этот беспорядок в пространствах имен ... Особенно трудно понять, в каком ns элементе живет вновь и вновь вновь определенные пространства имен по умолчанию .
В большинстве случаев лучше всего указывать как можно точнее .Но здесь я бы предложил игнорировать пространства имен, используя везде подстановочные знаки:
SELECT t.ID
,pers.value(N'(*:PersonName/*:FirstName/text())[1]',N'nvarchar(200)') AS Person_FirstName
--more of Person
,addr.value(N'(*:Identification/*:AddressNumber/text())[1]',N'uniqueidentifier') AS Address_Number
--AddressUsage would need one more `.nodes()`, as it is 1:n within each address
,addr.value(N'(*:EffectiveDates/*:StartDateTime/text())[1]',N'datetime2') AS Address_StartDateTime
,addr.value(N'(*:Address1/text())[1]',N'nvarchar(max)') AS Address_Address1
,addr.value(N'(*:Address2/text())[1]',N'nvarchar(max)') AS Address_Address2
,addr.value(N'(*:Address3/text())[1]',N'nvarchar(max)') AS Address_Address3
,addr.value(N'(*:City/text())[1]',N'nvarchar(max)') AS Address_City
--more of the same
FROM @tbl AS t
OUTER APPLY t.YourXml.nodes(N'/*:PostData/*:data/*:CurrentEBO/*:Person') A(pers)
OUTER APPLY pers.nodes(N'*:PhysicalAddresses/*:PhysicalAddress') B(addr);
Я не понимаю этого:
У меня было бы 5 записей с различной частью адресав каждом ряду
Но вышесказанное должно указывать вам путь ...