SQL更新:在长字符串中间插入新词
我有一个字符串值,如下所示:SQL更新:在长字符串中间插入新词,sql,string,oracle,Sql,String,Oracle,我有一个字符串值,如下所示: DOMAIN1:word1,word2,word3#DOMAIN2:word4,word5# DOMAIN1:word1,word2,word3,***newword***#DOMAIN2:word4,word5# 我想在域1的末尾插入一个新词,如下所示: DOMAIN1:word1,word2,word3#DOMAIN2:word4,word5# DOMAIN1:word1,word2,word3,***newword***#DOMAIN2:word4,wo
DOMAIN1:word1,word2,word3#DOMAIN2:word4,word5#
DOMAIN1:word1,word2,word3,***newword***#DOMAIN2:word4,word5#
我想在域1的末尾插入一个新词,如下所示:
DOMAIN1:word1,word2,word3#DOMAIN2:word4,word5#
DOMAIN1:word1,word2,word3,***newword***#DOMAIN2:word4,word5#
但我不知道这是否可能,如果可能,我可以在Oracle SQL中这样做吗
谢谢大家 一个选项使用
regexp\u replace()
:
或者,如果您不想硬编码“域2”:
:
with t as (select 'DOMAIN1:word1,word2,word3#DOMAIN2:word4,word5#' mycol from dual)
select mycol,
regexp_replace(mycol, '#DOMAIN2', ',newword#DOMAIN2') mycol1,
regexp_replace(mycol, '(DOMAIN1[^#]*)', '\1,newword') mycol2
from t
MYCOL | mycl1 | mycl2
:--------------------------------------------- | :----------------------------------------------------- | :-----------------------------------------------------
域名1:word1,word2,word3#域名2:word4,word5#域名1:word1,word2,word3,newword#域名2:word4,word5#域名1:word1,word2,word3,newword#域名2:word4,word5#
欢迎使用第二个版本,但不是第一个版本
:-)
非常感谢@GMB
MYCOL | MYCOL1 | MYCOL2
:--------------------------------------------- | :----------------------------------------------------- | :-----------------------------------------------------
DOMAIN1:word1,word2,word3#DOMAIN2:word4,word5# | DOMAIN1:word1,word2,word3,newword#DOMAIN2:word4,word5# | DOMAIN1:word1,word2,word3,newword#DOMAIN2:word4,word5#