HNA SQL запрос или замена charIndex в SQL HAN - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть требование для создания запроса SELECT sql hana, в котором столбец содержит только одну запись, содержащую значения ниже запятых.

Input :
rowtext,requiredText1,requiredText2,requiredText3,rowtext,rowtext,rowtext,rowtext

Output :
    requiredText1,requiredText2,requiredText3


without using store procedure. 

Table : TestTable
column1                                 column2
pid1                                        rowtext,requiredText1,requiredText2,requiredText3,rowtext,rowtext,rowtext,rowtext
pid2                                        rowtext,requiredText1,requiredText2,requiredText3,rowtext,rowtext
pid3                                        rowtext,requiredText1,requiredText2,requiredText3,rowtext
pid4                                        rowtext,requiredText1,requiredText2,requiredText3,rowtext,rowtext,rowtext 

1 Ответ

0 голосов
/ 20 ноября 2018

Я понимаю ваш вопрос, поэтому вы хотите удалить rowtext, части входной строки. Дополнительная трудность заключается в том, что до и после rowtext имеются висячие запятые, которые также следует удалить.

Один из способов сделать это - использовать регулярные выражения, подобные этому:

with src as (select 'rowtext,requiredText1,requiredText2,requiredText3,rowtext,rowtext,rowtext,rowtext' as INPUT
             from dummy)
select
    replace_regexpr ( ',?rowtext,?' in INPUT WITH '') as output
from src;

OUTPUT                                   
requiredText1,requiredText2,requiredText3

,? в шаблоне поиска соответствует нулю или точно одной запятой, а rowtext буквально соответствует строке поиска.

...