Как удалить все символы перед определенным символом в Cognos Report Studio 10.2 - PullRequest
1 голос
/ 02 мая 2019

У меня есть столбцы с разными названиями компаний. Перед каждым названием компании указан Company_ID. После Company_ID определенный символ = _ отделяет идентификатор от имени. Например, у меня есть

111_Mercedes 11B4324_Apple 38A_Google A1ZH8_Airline

Я хотел бы удалить все символы, включая определенный символ.

Результат должен быть Mercedes яблоко Google Авиакомпания

Заранее спасибо

1 Ответ

0 голосов
/ 06 мая 2019

Если это все в одном элементе данных, и вам нужно удалить шаблон, попробуйте это: Например, 111_Mercedes 11B4324_Apple 38A_Google

Имя начинается с _ и заканчивается пробелом Из-за этого мы можем использовать функцию замены, чтобы настроить процесс в два этапа

1) Заверните нежелательную часть в скобки Sql будет выглядеть так

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

Результат будет выглядеть как <111> Mercedes <11B4324> Яблоко <38A> Google

2) Затем убрать содержимое в скобках Sql будет выглядеть так:

Select trim(REGEXP_REPLACE(
'<111>Mercedes<11B4324>Apple<38A>Google'
, '<(.*?)>',' ',1,0,'c'))                                            
FROM sysibm.sysdummy1         

Результат будет выглядеть так Мерседес Яблоко Google

Для Cognos попробуйте использовать функции в определениях элементов данных

BracketCompany =  concat('<',replace(replace([Company ID],' ','<'),'_','>'))

Затем еще один элемент данных, чтобы удалить содержимое в скобках

FinalCompany = trim(REGEXP_REPLACE([BracketCompany], '<(.*?)>',' ',1,0,'c')) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...