String 如何在Cognos Report Studio 10.2中删除特定字符之前的所有字符

String 如何在Cognos Report Studio 10.2中删除特定字符之前的所有字符,string,character,cognos-10,cognos-bi,String,Character,Cognos 10,Cognos Bi,我有不同公司名称的专栏。每个公司名称前都有一个公司ID。公司ID后有一个特定字符=\将ID与名称分开。比如我有 111_梅赛德斯 11B4324_苹果 38A_谷歌 A1ZH8_航空公司 我想删除所有字符,包括特定字符 结果应该是 梅赛德斯 苹果 谷歌 航空公司 提前感谢如果这是一个数据项,您需要删除一个模式,请尝试以下操作: 例如,111_梅赛德斯11B4324_苹果38A_谷歌 名称以u开头,以空格结尾 因此,我们可以使用replace函数分两步设置流程 1)将不需要的部分用括号括起来 Sq

我有不同公司名称的专栏。每个公司名称前都有一个公司ID。公司ID后有一个特定字符=\将ID与名称分开。比如我有

111_梅赛德斯 11B4324_苹果 38A_谷歌 A1ZH8_航空公司

我想删除所有字符,包括特定字符

结果应该是 梅赛德斯 苹果 谷歌 航空公司


提前感谢

如果这是一个数据项,您需要删除一个模式,请尝试以下操作: 例如,111_梅赛德斯11B4324_苹果38A_谷歌

名称以u开头,以空格结尾 因此,我们可以使用replace函数分两步设置流程

1)将不需要的部分用括号括起来 Sql应该是这样的

select                                                        
concat('<',replace(
    replace('111_Mercedes 11B4324_Apple 38A_Google',' ','<')
        ,'_','>'))
 FROM sysibm.sysdummy1             
选择

concat('如果这是一个数据项中的所有内容,并且需要删除一个模式,请尝试以下操作: 例如,111_梅赛德斯11B4324_苹果38A_谷歌

名称以u开头,以空格结尾 因此,我们可以使用replace函数分两步设置流程

1)将不需要的部分用括号括起来 Sql应该是这样的

select                                                        
concat('<',replace(
    replace('111_Mercedes 11B4324_Apple 38A_Google',' ','<')
        ,'_','>'))
 FROM sysibm.sysdummy1             
选择

海螺('值是否总是包含4个公司名称?不,这只是一个示例。至少有1000多个公司名称。SQL不擅长在单个值上循环执行数千个操作。可以这样做,但可以在存储过程中完成,而不是在一个简单的查询中完成。您应该让DBA创建一个ETL来解析此数据并放入单个val在另一个表中使用。可能是一个存储的proc或SQL函数来返回所需的结果(而不是另一个表)该值是否始终包含4个公司名称?不,这只是一个示例。至少有1000多个公司名称。SQL不擅长在单个值上循环执行数千个操作。可以这样做,但可以在存储过程中完成,而不是在简单的查询中完成。您应该让DBA创建一个ETL来解析此数据并放入单个值s在另一个表中。可能是一个存储的proc或SQL函数,用于返回所需的结果(而不是另一个表)这将返回
梅赛德斯11B4324\u苹果38A\u谷歌A1ZH8\u航空公司
。我认为克雷正在寻找
梅赛德斯苹果谷歌航空公司
。这将返回
梅赛德斯11B4324\u苹果38A\u谷歌A1ZH8\u航空公司
。我认为克雷正在寻找
梅赛德斯苹果谷歌航空公司
BracketCompany =  concat('<',replace(replace([Company ID],' ','<'),'_','>'))
FinalCompany = trim(REGEXP_REPLACE([BracketCompany], '<(.*?)>',' ',1,0,'c'))