Oracle SQL: 删除最后一个逗号分隔的值
update t_maeinfo set FUSERS=substr(FUSERS, 1, length(FUSERS) - length(regexp_substr(FUSERS, ',[^,]*$'))) where fcode='E12023020017';
该 SQL 语句用于更新表 t_maeinfo 中的 FUSERS 字段,删除最后一个逗号分隔的值。
解释:
update t_maeinfo: 更新t_maeinfo表。set FUSERS=...: 设置FUSERS字段的值。substr(FUSERS, 1, length(FUSERS) - length(regexp_substr(FUSERS, ',[^,]*$'))): 使用substr函数截取字符串,从第一个字符开始,截取到最后一个逗号之前的位置。regexp_substr(FUSERS, ',[^,]*$'): 使用regexp_substr函数获取最后一个逗号及其后面的部分。where fcode='E12023020017': 只更新fcode等于'E12023020017'的记录。
示例:
假设 FUSERS 字段的值为:'user1,user2,user3'
执行该 SQL 语句后,FUSERS 字段的值将变为:'user1,user2'
注意:
- 该语句只删除最后一个逗号分隔的值,如果需要删除多个值,需要修改 SQL 语句。
- 使用该语句前,请确保数据备份。
原文地址: http://www.cveoy.top/t/topic/mI8H 著作权归作者所有。请勿转载和采集!