PLSQL Replace String ด้วยคำสั่ง REGEXP_REPLACE
การ Replace String ใน PLSQL นั้นสามารถทำได้ ง่ายๆ ด้วยคำสั่ง REPLACE
@@เริ่มจากการ Replace ค่าให้เป็นค่าว่าง
REPLACE('String ตั้งต้น', 'ค่าที่ต้องการให้เป็นค่าว่าง');
ตัวอย่างเช่น
select REPLACE('XXTEST1X23','X') from dual; --ผลที่ได้คือ : TEST123
select REPLACE('XXTEST1X23','XX') from dual; --ผลที่ได้คือ : TEST1X23
@@การ Replace ค่าด้วยค่าอื่น
REPLACE('String ตั้งต้น', 'String ที่ต้องการ Replace','String ที่จะ Replace');
ตัวอย่างเช่น
select REPLACE('XXTEST1X23','XX','YY') from dual; --ผลที่ได้คือ : YYTEST1X23
select REPLACE('XXTEST1X23','XX','Y') from dual; --ผลที่ได้คือ : YTEST1X23
select REPLACE('XXTEST1X23','X','YY') from dual; --ผลที่ได้คือ : YYYYTEST1YY23
แต่ถ้าเราต้องการ Replace แบบมีเงื่อนไขมากกว่านี้ล่ะ ยกตัวอย่างเช่น
Replace เฉพาะ String XX ที่อยู่ต้นบรรทัดเท่านั้น Case นี้แนะนำให้ใช้ REGEXP_REPLACE
REGEXP_REPLACE('String ตั้งต้น', 'เงื่อนๆข REGEXP','String ที่จะ Replace');
ตัวอย่างเช่น
SELECT REGEXP_REPLACE ('XXTEST1X23', '^(XX*)', 'YY') FROM dual; --ผลที่ได้คือ : YYTEST1X23
SELECT REGEXP_REPLACE ('XXTEST1XX23', '^(X)', 'YY') FROM dual; --ผลที่ได้คือ : YYXTEST1XX23
SELECT REGEXP_REPLACE ('XXTEST1XX23', '^(X*)', 'YY') FROM dual; --ผลที่ได้คือ : YYTEST1XX23
SELECT REGEXP_REPLACE ('XXTEST1XX23', 'XX', 'YY') FROM dual;--ผลที่ได้คือ : YYTEST1YY23
SELECT REGEXP_REPLACE ('XXTEST1XX23', 'X', 'YY') FROM dual; FROM dual;--ผลที่ได้คือ : YYYYTEST1YYYY23
SELECT REGEXP_REPLACE ('XXTEST1XX23', 'X+', 'YY') FROM dual;--ผลที่ได้คือ : YYTEST1YY23
SELECT REGEXP_REPLACE ('XXTEST1XX23', 'X+|E', 'YY') FROM dual; --ผลที่ได้คือ : YYTYYST1YY23