Есть допустим два идентификатора ГАР - один до улицы, второй до дома. Нужно развернуть их в таблицу по столбцам - область, район, город(село), улица, дом, корпус, квартира, адрес целиком. В гаре есть path в adm_hierarchy - там через точку указана иерархия адреса. В addr_obj есть колонка level: 1 – уровень региона 2 – уровень автономного округа (устаревшее) 3 – уровень района 35 – уровень городских и сельских поселений 4 – уровень города 5 – уровень внутригородской территории (устаревшее) 6 – уровень населенного пункта 65 – планировочная структура 7 – уровень улицы 75 – земельный участок 8 – здания, сооружения, объекта незавершенного строительства 9 – уровень помещения в пределах здания, сооружения 90 – уровень дополнительных территорий (устаревшее) 91 – уровень объектов на дополнительных территориях (устаревшее)
//донецкая респ
select name,typename,* from gar.addr_obj where level = '1' and isactual = 1 order by name
//ясиноватое
select name,typename,* from gar.addr_obj a
join gar.adm_hierarchy h on h.objectid = a.objectid
where h.parentobjid = 155815692
and isactual = 1 order by name
//нетайлово
select name,typename,* from gar.addr_obj a
join gar.adm_hierarchy h on h.objectid = a.objectid
where h.parentobjid = 155816063
and isactual = 1 order by name
//безкаравайной
select name,typename,* from gar.addr_obj a
join gar.adm_hierarchy h on h.objectid = a.objectid
where h.parentobjid = 156148609
and isactual = 1 order by name
//пусто
select name,typename,* from gar.addr_obj a
join gar.adm_hierarchy h on h.objectid = a.objectid
where h.parentobjid = 160316367
and isactual = 1 order by name
//дом
select housenum,hs.* from gar.houses hs
join gar.adm_hierarchy h on h.objectid = hs.objectid
where h.parentobjid = 160316367
and isactual = 1 order by housenum
То есть идентификатор 8faa9729-75fd-4d4b-8b6e-a1a9f82515ab например до улицы безкаравайной хранится в objectguid столбце в таблице addr_obj, в этой же строчке будет и path - 155815692.155816063.156148609.160316367 в этой же строчке будет и level для данной улицы 8. Нужно path разрезать по точкам и сделать запросы для каждого числа(objectid) к таблице addr_obj и по уровню level'а записать в таблицу