使用MySql从字符串中间修剪值

使用MySql从字符串中间修剪值,sql,trim,domo,Sql,Trim,Domo,我有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

我有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)'
我已经开发了修剪前两个值的逻辑,但似乎无法理解如何从字符串中间修剪值:EBDA之后和公司名称之前的所有内容

这是我的密码:

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

如果您使用的是MySQL,请使用
子字符串\u index()


如果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

用您正在使用的数据库标记您的问题。对此表示抱歉!我正在使用domo。看到这一点,它与MySQLCorrect相同,它是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