Получение имен столбцов из sql - PullRequest
0 голосов
/ 04 марта 2019

У меня есть эта таблица

id | apple | banana | coconut | pear| code | Class |
1     1       1       1           0    101      B
2     0       0        1          1    102      C
3     1       0        0          1    103      B

У меня есть этот запрос в данный момент

select tree
from ((select id, 'apple' as tree
       from trees
       where apple = 1
      ) union all
      (select id, 'banana' as tree
       from trees
       where banana = 1
      ) union all
      (select id, 'coconut' as tree
       from trees
       where coconut = 1
      ) union all
      (select id, 'pear' as tree
       from trees
       where pear = 1
      )
     ) t
where id = 1;

, который дает мне вывод

apple
banana 
coconut

, но я хочудля этого нужно запросить, используя code что-то вроде WHERE code = '101' and id =1, а также отобразить class, так как вывод должен выглядеть примерно так:

   class  |fruits
     B      apple 
            banana  
            coconut

что-то вроде этого даже возможно.

дайте мне знать, если вам нужно больше разъяснений

1 Ответ

0 голосов
/ 04 марта 2019

Вы можете добавить нужный вам столбец и значение NULL в select для объединения, где вам не нужно значение

select tree
from ((select id, 'apple' as tree, code, class
       from trees
       where apple = 1
      ) union all
      (select id, 'banana' as tree, null, null
       from trees
       where banana = 1
      ) union all
      (select id, 'coconut' as tree, null,  null
       from trees
       where coconut = 1
      ) union all
      (select id, 'pear' as tree, null, null
       from trees
       where pear = 1
      )
     ) t
where id = 1;

, таким образом, все выбранные имеют одинаковое количество столбцов и соответствующий тип данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...