Sql на основе нескольких строк выберите как GraphQL

#sql #join #mariadb

Вопрос:

У меня есть большие таблицы я хочу выбрать разные столбцы в зависимости от нескольких условий, а не весь столбец, даже если в ряду это не нужно.
что-то вроде :
Я хочу (Н1,Н2) если ряд HR1=R1 и (Н2,Н3) если H1=Р2 …
проблема в том что я могу сделать полный выбрать, чтобы выбрать все столбцы, но это слишком много uneeded столбцы
пробовал

 select from ((select H2,H3 where H1=R1),(select H2,H4 where H1=R2), (select H5 where H1=R3))
 

после определенного количества условий в запросе я получаю пустой результат.

 | H1 | H2 | H3  | H4  | H5  |
|----|----|-----|-----|-----|
| R1 |[V1]|[V2] | V3  | V4  |
| R2 |[V5]| V6  |[V7] | V8  |
| R3 | V9 | V10 | V11 |[V12]|
 

Комментарии:

1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

Ответ №1:

Похоже, ты хочешь этого :

 select  case when H1 in (R1,R2) then H2 else null end as H2
      , case when H1 = R1 then H3 else null end as H3
      , case when H1 = R2 then H4 else null end as H4
      , case when H1 = R3 then H5 else null end as H5
from table