2013-05-04 50 views
2

主題:數據清理 - 檢查異常值 - 模式不正確如何將記錄從字母數字更新爲數字?

我試圖更新從值'A123'到'123','22A4'到'224'的custID我只想保留custID內的整數,我不希望CUSTID包含任何非整數的字符(A到Z和a到z)

CREATE TABLE customer (
custID VARCHAR2(10) PRIMARY KEY, 
custName VARCHAR2(30) 
); 
INSERT INTO customer(custID,custName) VALUES ('A123','Angel'); 
INSERT INTO customer(custID,custName) VALUES ('22A4','Chris'); 
INSERT INTO customer(custID,custName) VALUES ('2333','Chris'); 

UPDATE customer 
SET custID =   -- I want to change 'A123' to '123', '22A4' to '224' 
WHERE   ; 
+0

'CUSTOMER_ID = REGEXP_REPLACE(CUSTOMER_ID, '[A-ZA-Z]', '', 'G')'順便說一句:這是postgres的語法。你的語法可能會有所不同(特別是第四個參數) – wildplasser 2013-05-04 15:53:13

回答

2

使用此...

UPDATE customer 
SET custID = REGEXP_REPLACE(custID, '[^0-9]+', '') 
WHERE   ; 

或試試這個...

UPDATE customer 
SET custID = REGEXP_REPLACE(custID, '[^[:digit:]]+', '') 
WHERE   ; 
+0

它的工作原理,非常感謝! – 2013-05-05 03:46:08

+0

@JohnSmith尼斯......接受答案。 – 2013-05-05 16:00:00

相關問題