如何删除SQL中不必要的字符

如何删除SQL中不必要的字符,sql,database,oracle,Sql,Database,Oracle,我需要一个查询,可以从存储在数据库表中的字符串中删除不必要的字符(例如不需要的尾随逗号) 所以 EMAIL_ADD abc@gmail.com, abc@yahoo.com,def@example.org, abs-def@ac.uk, 电邮地址 abc@gmail.com, abc@yahoo.com,def@example.org, 腹肌-def@ac.uk, 将其更新为以下内容: EMAIL_ADD abc@gmail.com abc@yahoo.com,def@example.org a

我需要一个查询,可以从存储在数据库表中的字符串中删除不必要的字符(例如不需要的尾随逗号)

所以

EMAIL_ADD abc@gmail.com, abc@yahoo.com,def@example.org, abs-def@ac.uk, 电邮地址 abc@gmail.com, abc@yahoo.com,def@example.org, 腹肌-def@ac.uk, 将其更新为以下内容:

EMAIL_ADD abc@gmail.com abc@yahoo.com,def@example.org abs-def@ac.uk 电邮地址 abc@gmail.com abc@yahoo.com,def@example.org 腹肌-def@ac.uk 将
TRIM()
函数与
TRAILING
选项一起使用,可以从字符串的末尾删除一个特定的不需要的字符,在您的情况下,该字符的末尾是一个逗号

UPDATE tableName
SET EMAIL_ADD = TRIM(TRAILING ',' FROM EMAIL_ADD)

如果在开始和结束时有特定的字符列表要过滤,请使用
trim
功能:

select ltrim(ltrim(rtrim(rtrim(email_add, ','), ' '), ','), ' ')
from   tableX
这里我嵌套了
ltrim
rtrim
,以删除前导和尾随

或使用
修剪

select trim(trim(both ',' from email_add))
from   tableX

如果只想删除字符串的最后一个字符,可以使用

update mytable set my_column = substr(my_column ,0,len(trim(my_column)-1) where mycolumn like '%,'

这是一个未经测试的示例。

您是否专门讨论删除尾随字符?如何确定哪些字符是不必要的?如何在将这些字符写入数据库时/之前删除这些字符?否则,在读取数据时,将始终存在删除它们的问题。