[英]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.