表有两个字段:
一个表有两列:
1.id
2.answer 我要把answer的最后一句话去掉。比如此表有如下数据:
id answer
1 如果您向专家提问,专家在登录CSDN网站后将第一时间内得到通知,并且为您提供答案(如果需要向指定的专家提问,您需要至少100分可用分)。
2 在SQL查询分析器里修改表中数据(语句不会写)。修改 SQL 语句。
修改以后的数据为:
id answer
1 如果您向专家提问,专家在登录CSDN网站后将第一时间内得到通知,并且为您提供答案。
2 在SQL查询分析器里修改表中数据。修改 SQL 语句。
一个表有两列:
1.id
2.answer 我要把answer的最后一句话去掉。比如此表有如下数据:
id answer
1 如果您向专家提问,专家在登录CSDN网站后将第一时间内得到通知,并且为您提供答案(如果需要向指定的专家提问,您需要至少100分可用分)。
2 在SQL查询分析器里修改表中数据(语句不会写)。修改 SQL 语句。
修改以后的数据为:
id answer
1 如果您向专家提问,专家在登录CSDN网站后将第一时间内得到通知,并且为您提供答案。
2 在SQL查询分析器里修改表中数据。修改 SQL 语句。
解决方案 »
- oracle 中 locked(timed)
- 求助一个小测试软件在没装ORACLE的机器上连接不上啊。
- 关于update SQL语句,简单问题,大家来看看
- oracle
- oracle建表,建库的问题
- 关于数据库中DATE类型的不理解
- 想学oracle,该用什么版本的进行学习呢?
- 救救我吧 紧急求助: ORA-12560: TNS: 协议适配器错误
- SQL语句的高难度问题,非高手勿入!
- 请问企业部署Oracle数据库用Solaris或者Oracle Linux还是其他操作系统?我要学哪个操作系统比较保守一点?
- pl/sql如何取周末
- oracle10g中创建一个用户,跟oracle9i的scott用户一样!!!!!!!!
update table set answer=substr(answer,1,instr(answer,'(')-1)||substr(answer,instr(answer,')')+1);
substr(answer,instr(answer,')')+1) 这个是第一个)出现的位置+1
如果有多个括号,看你想怎么删除,基本就按这种方法去做,有可能会用到存储过程
LZ你拆分的并不正确,应该是这样
substr(answer,1,instr(answer,'(')-1)||substr(answer,instr(answer,')')+1);substr(answer,1,instr(answer,'(')-1)和substr(answer,instr(answer,')')+1),将(前面的部分取出与)后面的字符串进行合并。如果知道instr函数和substr函数的含义,你会明白的。 CREATE TABLE "AIOBS7"."ORACLE_TEMP1"
( "ID" VARCHAR2(400),
"ANSWER" VARCHAR2(400)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "OBS_DATA" ;如果你想确定一个记录含有括号的个数,可以通过下面的语句:
select length(ANSWER)-length(replace(ANSWER,'(','')) from oracle_temp1;
来实现,如果存在一条记录多个括号的情况,最好使用指针和循环语句来实现
update table set answer = replace(answer,'(%)','');
这个方法和上面的几个比怎么样,如果只有一对小括号,这个方法可以吗?如果是括号里嵌套了括号的话,这个方法可行吗?
谢谢!
update table set answer = replace(answer,'(%)','');
这个方法和上面的几个比怎么样,如果只有一对小括号,这个方法可以吗?
up up up
在oracle9i或10G中可以使用正则
SELECT REGEXP_REPLACE(T.answer, '(\(.*\))|((.*\))', '') FROM TAC T;