Oracle SQL: 删除 FUSERS 列中最后一个逗号分隔的值
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 函数从 FUSERS 列中提取字符串,并使用 length 和 regexp_substr 函数计算要截取的长度。
- regexp_substr(FUSERS, ',[^,]*$): 使用正则表达式匹配最后一个逗号分隔的值,并返回该值。
- length(regexp_substr(FUSERS, ',[^,]*$')): 计算最后一个逗号分隔值的长度。
- length(FUSERS) - length(regexp_substr(FUSERS, ',[^,]*$')): 计算需要保留的字符串长度。
- where fcode='E12023020017': 指定要更新的行的条件。
示例:
假设 FUSERS 列的值为 'A,B,C,D',执行该 SQL 语句后,FUSERS 列的值将变为 'A,B,C'。
注意:
该 SQL 语句适用于以逗号分隔的字符串,如果您的字符串使用其他分隔符,请修改正则表达式以匹配您的分隔符。
原文地址: http://www.cveoy.top/t/topic/mI8C 著作权归作者所有。请勿转载和采集!