我在 Oracle 9i 数据库中有以下字符串:
A,B,C,
当它是字符串中的最后一项时,我需要替换 ',' 的所有实例。我提出了以下语句,但它删除了该字段中的所有内容,而不仅仅是逗号。有什么建议么?
UPDATE table SET column = REPLACE(SUBSTR(column, -1, 1), ',', '');
我在 Oracle 9i 数据库中有以下字符串:
A,B,C,
当它是字符串中的最后一项时,我需要替换 ',' 的所有实例。我提出了以下语句,但它删除了该字段中的所有内容,而不仅仅是逗号。有什么建议么?
UPDATE table SET column = REPLACE(SUBSTR(column, -1, 1), ',', '');
rtrim(column, ',')
既高效又短得多
您忘记添加条件:WHERE SUBSTR(column, -1, 1) = ','
Quassnoi 发现了另一个问题 - REPLACE 返回 null - 您不能在“集合”中使用它
完整的sql:
UPDATE table SET column = SUBSTR(column, 0, length(column)-1)
WHERE SUBSTR(column, -1, 1) = ',';
这将确保您仅在具有以“,”结尾的值的行中进行替换
如果您只想在查询中引用 'column' 1 次,只需执行以下操作:
UPDATE table SET column = REVERSE(SUBSTR(REVERSE(column), 2));
UPDATE mytable
SET column = SUBSTR(column, 1, LENGTH(column) - 1)
WHERE SUBSTR(column, -1, 1) = ','