[英]How to remove the comma seperated part of the column record from the oracle table
我们有一个称为“名称”的oracle表,它具有大约10k记录。 该表的其中一列为“ ID”。 现在,此列已完全弄乱了,记录看起来与下面类似。
ID
A.011
A.012
A.013
B.014
B.015
B.016
A-B-C
X_Y_Z
randomName
OtherName
现在,我们决定删除记录的点号(。)分隔部分,并保留其他记录。 所以记录应该看起来像
ID
011
012
013
014
015
016
A-B-C
X_Y_Z
randomName
OtherName
您可以使用以下语句:
update names set id=regexp_replace(id,'^[^\.]+\.','')
如您在此处看到的,不含ID的ID .
根本没有动过:
select regexp_replace('tst234','^[^\.]+\.','') from dual
这里是一个测试.
select regexp_replace('A.0234','^[^\.]+\.','') from dual
使用正则表达式:
update names set id = case
when instr(id,'.') between 0 and length(id) - 1 then
regexp_replace(id,'^[^\.]*\.(.+)$','\1')
else id
end;
要UPDATE
使用以下简单查询:
UPDATE Name
SET ID = SUBSTR(ID, INSTR(ID, '.')+1);
PS虽然有点奇怪,但是SUBSTR(expr, 0) = SUBSTR(expr,1)
。 但这有效!
只需使用以下sql查询,即可删除.
从字符串。
UPDATE Names SET ID = regexp_replace(id,'\.+','');
下面的查询将删除前面的所有字符.
UPDATE Names SET ID = substr(id,instr(id,'.')+1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.