一个表有两列:
1.id
2.answer我要把answer的最后一句话去掉。比如此表有如下数据:
id   answer
1    如果您向专家提问,专家在登录CSDN网站后将第一时间内得到通知,并且为您提供答案。如果需要向指定的专家提问,您需要至少100分可用分。
2    在SQL查询分析器里修改表中数据(语句不会写)。修改 SQL 语句。
修改以后的数据为:
id   answer
1    如果您向专家提问,专家在登录CSDN网站后将第一时间内得到通知,并且为您提供答案。
2    在SQL查询分析器里修改表中数据(语句不会写)。answer里只考虑逗号和句号就可以了,不需要考虑问好和感叹号之类的符号。即只要删除倒数第二个逗号后面的内容即可。
这句sql语句怎么写?等待各位前辈的解答。

解决方案 »

  1.   

    update table set answer=substr(answer,1,instr(answer,',',-1));
      

  2.   

    查了一下这两个函数的用法,你这个是不是有些错误。是不是应该搞成这样:
    update table set answer=substr(answer,1,instr(answer,'。',-1,2));
    请前辈点评
      

  3.   

    我用instr取的是最后一个‘,’
    你那个是想取哪部分如果instr用4个参数的话,第一个应该是 截取的起始位置,第二是字符串,第三是匹配串,第四是截止位置
      

  4.   

    还有你说的instr的参数好象不对,这是我网上找到的,你看看。5.INSTR(C1,C2,I,J)
    在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
    C1   被搜索的字符串
    C2   希望搜索的字符串
    I   搜索的开始位置,默认为1
    J   出现的位置,默认为1
    SQL>   select   instr('oracle   traning','ra',1,2)   instring   from   dual;INSTRING
    ---------
    9
      

  5.   

    update table set answer=substr(answer,1,instr(answer,'。',-2));
    你先试试这个对不对,我没有用instr取过倒数第二
    instr的用法我在看一下
      

  6.   

    刚查了下,呵呵这个你是对的,我记混了,我刚说的不是oracle里的用法
      

  7.   

    update table set answer=substr(answer,1,instr(answer,'。',1));
    这样就可以了
      

  8.   

    update table set answer=substr(answer,1,instr(answer,'。',1));
    这样就可以了
      

  9.   

    那你之前的
    update table set answer=substr(answer,1,instr(answer,'。',-1,2));
    这个就符合你的要求了
      

  10.   

    这回没错了
    update table set answer=substr(answer,1,instr(answer,'。',-1,2));