select * from (
select T.col.value('@Kind','varchar(30)') as Attribute_King,
T.col.value('.','varchar(30)') as StrVal
from @xml_doc.nodes('//*:Attribute') as T(col)
) as p
PIVOT (
MAX(Attribute_King) for [StrVal] in([230425416398244922], [Payment])
) as piv
create table employees (emp_id int, manager_id int);
insert into employees
select 1 emp_id, 2 manager_id
union all select 2, 3
union all select 3, 4
union all select 4, null
union all select 5, 3
union all select 6, 4;
with recursive r as (
select
emp_id, manager_id, 0 as lvl
from employees
union all
select
r.emp_id, head.manager_id, r.lvl + 1
from r
join employees head on r.manager_id = head.emp_id
where head.manager_id is not null
)
select * from r
where emp_id = 1;
2. "Проверка целостности базы данных" - на ежедневной основе смысла не имеет, особенно если база достаточно крупная. Её имеет смысл делать или при возникновении проблем, или раз в квартал/месяц ... зависит от размеров базы.