SQL длинный формат широкоформатный - PullRequest
0 голосов
/ 07 сентября 2018

у меня ниже таблица с форматом

order_id    order_items
6161        ["7040","1308","1308"]
7234        ["22"]

Мне нужно преобразовать формат в приведенный ниже

order _id  I_7040   I_1308   I_22
6162       true     true     false
7234       false     false    true

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете использовать такие как regexp_substr(t.order_items,'7040')='7040' сопоставления с case..when выражениями:

select t.order_id,
       ( case when regexp_substr(t.order_items,'7040')='7040' then
          'true'
         else
          'false'
         end ) as "I_7040",
       ( case when regexp_substr(t.order_items,'1308')='1308' then
          'true'
         else
          'false'
         end ) as "I_1308",   
       ( case when regexp_substr(t.order_items,'22')='22' then
          'true'
         else
          'false'
         end ) as "I_22"
  from tab t;

SQL Fiddle Demo

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