使用MySql从字符串中间修剪值
我有domo平台中的数据,需要使用sql对其进行修剪。我的数据如下所示:使用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
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