У меня есть цель, я хочу выбрать первые 2 элемента в списке и последние 2, преобразовать их в строку и вставить между ними «→». Я написал код, который находит эти элементы и преобразует их в строку.
select t.DEVNAME
from ( select t.DEVNAME,
row_number () over (partition by keys order by SEQUENCE) rn_asc,
row_number () over (partition by keys order by SEQUENCE desc) rn_desc
from ASU_DEVICES t
where t.keys = 'STIG6JGK'
) t
where rn_asc <= 2 or rn_desc <= 2
мой ответ:
B
СИЛОС 102
Конвейер 67
Конвейер 66
преобразование всех элементов в строку:
select LISTAGG(t.DEVNAME , ',') WITHIN GROUP (ORDER BY 1)
from ( select t.DEVNAME,
row_number () over (partition by keys order by SEQUENCE) rn_asc,
row_number () over (partition by keys order by SEQUENCE desc) rn_desc
from ASU_DEVICES t
where t.keys = 'STIG6JGK'
) t
where rn_asc <= 2 or rn_desc <= 2
B,СИЛОС 102,Конвейер 67,Конвейер 66
Я хочу поставить отметку "→" между ними, но не могу ответить на мой запрос:
B,СИЛОС 102 → Конвейер 67,Конвейер 66