当前位置: 代码迷 >> Oracle开发 >> 这条SQL诸位有何高见啦.
  详细解决方案

这条SQL诸位有何高见啦.

热度:70   发布时间:2016-04-24 06:37:04.0
这条SQL各位有何高见啦.....
直接上 表结构:tableName:Topic
   id           SUBSCRIBERS                                                                                          SERVICEID 
   1         EDS,PSP,HOSS,ATMS,EDMS,FWLM,PCSS,KMS,HRSS,HRPTL         BigFileService:EMP_ONE

两个字段,现在要更新SUBSCRIBERS  字段,脚本如下:

UPDATE TOPIC SET SUBSCRIBERS=REPLACE(SUBSCRIBERS, ',PCS', '') WHERE SERVICEID = 'BigFileService:EMP_ONE';
  
UPDATE TOPIC SET SUBSCRIBERS=(SUBSCRIBERS || ',PCS') WHERE SERVICEID = 'BigFileService:EMP_ONE';
执行完后就会,此时就会出现一个问题

   id           SUBSCRIBERS                                                                                          SERVICEID 
   1         EDS,PSP,HOSS,ATMS,EDMS,FWLMS,KMS,HRSS,HRPTL,PCS         BigFileService:EMP_ONE

我只想加一个pcs的数据值,却把已经存在的 PCSS 干掉了,然后FWLM变为了FWLMS, 
各位大神 有何高见

我只想追加一个新的值,如果这个新的值在SUBSCRIBERS 字段中存在那么就先删除,然后追加,但是这种相似的怎么办呢???
------解决方案--------------------

rtrim(ltrim(REPLACE(','
------解决方案--------------------
SUBSCRIBERS
------解决方案--------------------
',', ',PCS,', ''),','),',')

------解决方案--------------------
问号去掉应该就好了
UPDATE TOPIC SET SUBSCRIBERS=rtrim(ltrim(REPLACE(','
------解决方案--------------------
SUBSCRIBERS
------解决方案--------------------
',',',PCS,',','),','),',') 
WHERE SERVICEID = 'BigFileService:EMP_ONE';
  相关解决方案