TRIM значения из середины строки с MySql - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть данные на платформе domo, которые мне нужно обрезать, используя sql. Мои данные выглядят следующим образом:

id        Partner 
123       'HDM | R | Verizon (Tags)'
124       'JAM | R | T-Mobile (Tags)'
125       'EBDA - ALL | Aetna (Tags)'
126       'EBDA - HDR HMI | Aetna (Tags)'

Я хочу, чтобы данные выглядели так:

id        Partner 
123       'Verizon (Tags)'
124       'T-Mobile (Tags)'
125       'EBDA Aetna (Tags)'
126       'EBDA Aetna (Tags)'

Я разработал логи c, которые обрезали первые два значения, но могу Кажется, не понять, как обрезать значения с середины строки: все, что после EBDA и перед названием компании.

Вот мой код:

select 
trim(TRIM(BOTH 'HDM | R |' FROM TRIM(BOTH 'JAM | R |' FROM TRIM(BOTH 'ALL | R |' FROM `Partner`)))) as `Partner`

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Если MySQL, то это то, что вам нужно:

select id
       , case when position(' - ' in Partner) > 0 then
            concat(substring_index(Partner, ' - ', 1) , ' ', substring_index(Partner, ' | ', -1))
            else substring_index(Partner, ' | ', -1)
         end Partner
from test

Вот демоверсия

0 голосов
/ 28 февраля 2020

Если вы используете MySQL, тогда используйте substring_index():

select substring_index(partner, ' | ', -1)
...