使用 RTRIM 或 REGEXP_REPLACE 将逗号替换为逗号 space 和单引号
Using RTRIM or REGEXP_REPLACE to replace a comma with a comma space and single quote
我正在尝试很好地学习 Oracle regexp_replace,以便将存储在 table 中的值作为逗号分隔的字符串,并将逗号字符更改为单引号后跟一个逗号后跟 space,后跟单引号。
例如,字段 (CourseListT) 包含如下所示的课程代码:
PEOE100,H003,H102,L001,L100,L110,M005,M020,M130
我希望它看起来像这样:
'PEOE100'、'H003'、'H102'、'L001'、'L100'、'L110'、'M005'、'M020', 'M130'
我从小步骤开始,发现此处的文章 #25997057 向我展示了如何插入 spaces。所以我有这个工作:
SELECT
regexp_replace(gr.CourseListT,'([a-zA-Z0-9_]+)(,?)',' ')
FROM gradreq gr
WHERE gr.gradreqsetid = 326
AND gr.SubjectArea = 'Electives'
但是我做的任何事情都不允许我插入那些愚蠢的单引号。
学习RTRIM替换会不会更好?有人可以帮我学习如何完成这个吗?
谢谢
雪莉
您只需使用 replace
即可。使用双 single-quotes 转义 single-quote.
select '''' || replace(CourseListT, ',', ''', ''') || ''''
from gradreq
我正在尝试很好地学习 Oracle regexp_replace,以便将存储在 table 中的值作为逗号分隔的字符串,并将逗号字符更改为单引号后跟一个逗号后跟 space,后跟单引号。
例如,字段 (CourseListT) 包含如下所示的课程代码:
PEOE100,H003,H102,L001,L100,L110,M005,M020,M130
我希望它看起来像这样:
'PEOE100'、'H003'、'H102'、'L001'、'L100'、'L110'、'M005'、'M020', 'M130'
我从小步骤开始,发现此处的文章 #25997057 向我展示了如何插入 spaces。所以我有这个工作:
SELECT
regexp_replace(gr.CourseListT,'([a-zA-Z0-9_]+)(,?)',' ')
FROM gradreq gr
WHERE gr.gradreqsetid = 326
AND gr.SubjectArea = 'Electives'
但是我做的任何事情都不允许我插入那些愚蠢的单引号。
学习RTRIM替换会不会更好?有人可以帮我学习如何完成这个吗?
谢谢 雪莉
您只需使用 replace
即可。使用双 single-quotes 转义 single-quote.
select '''' || replace(CourseListT, ',', ''', ''') || ''''
from gradreq