日期:2014-05-17  浏览次数:20742 次

oracle 函数的一些问题
如何用函数实现字符串的截取 如:常熟市财政局(预算外资金)海青镇第一分局,把括号及其内容去掉。

------解决方案--------------------
测试数据:
SQL code

CREATE TABLE T167
(
    ID NUMBER(4),
    F1 VARCHAR2(100)
);

-- 注意你的数据中的括号是中文还是英文的
INSERT INTO T167 VALUES(1, '常熟市财政局(预算外资金)海青镇第一分局');
INSERT INTO T167 VALUES(2, '大连市银行(要删除的内容)大连交通局');
INSERT INTO T167 VALUES(3, '营口市银行(要删除的内容)(大连交)通局');

------解决方案--------------------
SQL code
SELECT id, regexp_replace(regexp_replace(F1, '\([[:graph:]]*\)', ''), '\([[:graph:]]*\)', '') F1
FROM T167;


1    1    常熟市财政局海青镇第一分局
2    2    大连市银行大连交通局
3    3    营口市银行通局

------解决方案--------------------
接着问,如果是要指定第2个括号,又如何处理?
------解决方案--------------------
探讨
接着问,如果是要指定第2个括号,又如何处理?

------解决方案--------------------
探讨

我的意思是查询过后把括号及其括号中的内容去掉,处理结果成为‘常熟市财政局海青镇第一分局,请大侠再指点一下,多谢!