SQL как сделать множественные запросы SELECT в разных столбцах с одинаковым количеством строк?

подскажите, есть такой запрос

SELECT 
     (struc_usl_tree.id, kolcl, kolo, kolclzai) as one
 FROM 
     site.struc_usl_tree(null, null)
 left join site.sv_stat_dela('01.3.2020'::date,'31.3.2020'::date,'88','92,143,141,88,93,78,76,83',null) on sv_stat_dela.id_usl_sp = struc_usl_tree.id
 left join 
 (SELECT id,vid FROM site.sp_usl()) usl on usl.id = struc_usl_tree.id
 WHERE 
     struc_usl_tree.id IN (1526,1324,1430,1478,1513,1457)
 ORDER BY 
 nazfp

в данном коде site.sv_stat_dela('01.3.2020'::date,'31.3.2020'::date,'88','92,143,141,88,93,78,76,83',null) будет менять значение '88' на '92' потом на '143' и т.д.

Возможно ли сделать это 1-м запросом? что бы в первом столбце были данные по '88' во втором '92' и т.д. пробовал UNION - но он выводит все в одном столбце...


Ответы (1 шт):

Автор решения: Hany

Можно сделать условие при котором данные будут меняться с 88 на 92 и использовать case. Например так:

SELECT 
     CASE WHEN kolo = 88 THEN (struc_usl_tree.id, kolcl, kolo, kolclzai) ELSE Null END as one, 
     CASE WHEN kolo = 92 THEN (struc_usl_tree.id, kolcl, kolo, kolclzai) ELSE Null END as two
FROM 
     site.struc_usl_tree(null, null)
WHERE 
     struc_usl_tree.id IN (1526,1324,1430,1478,1513,1457)
ORDER BY 
     nazfp
→ Ссылка