首页 > 解决方案 > hana sql 查询或替换 sql hana 中的 charIndex

问题描述

我需要构建一个 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 

标签: sqlsaphanacomma

解决方案


我理解你的问题,所以你想删除输入字符串的rowtext,部分。另一个困难是在 that 之前和之后的悬空逗号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字面匹配搜索字符串。


推荐阅读