表:table
字段:zd1,zd2
值:zd1,zd2
    1    a
    1    b如何将zd2中值为b的行改为值a,谢谢

解决方案 »

  1.   

    1.当条件为zd2='a'时 ,赫赫
    update tabel set zd2='b' where zd2='a'你的具体条件是什么啊?
      

  2.   

    有好多值啊,我再写详细点。表:table 
    字段:zd1,zd2,zd3
    值:zd1,zd2 ,zd3
        1    a   1
        1    b   2 
        2    c   3
        2    d   4 
        3    c   5
        3    d   6
        ...将zd1相同的行中上一行的zd2的值改成下一行
      

  3.   

    如果只是一个简单的update的话,2楼的回复就处理了啊
      

  4.   

    有好多值啊,我再写详细点。 表:table 
    字段:zd1,zd2,zd3 
    值:zd1,zd2 ,zd3 
        1    a  1 
        1    b  2 
        2    c  3 
        2    d  4 
        3    e  5 
        3    f  6 
        ... 将zd1相同的行中上一行的zd2的值改成下一行 
     
      

  5.   

    需求还不不明确,嘿嘿,是否是将表中相同zd1字段的zd2字段全部修改为相同zd1字段的某行的值,其中相同zd1字段的某行是什么需求,怎么排序。
      

  6.   

    写个pl/sql语句可以实现这样的功能啊
    通过一个for循环,对每一个上一行的值进行判断
    如果两个zd1相同
    那么把上一行的zd2的值改成下一行就可以了
      

  7.   

    楼主最好把需求说的明白一些
    你前面说把b改为a
    可这里的意思又是把a改为b
      

  8.   

    table
    zd1  zd2  zd3
    bh1   0    dw1
    bh1   100  dw1
    bh2   0    dw2
    bh2   200  dw2
    bh3   0    dw3
    bh3   300  dw3
    ...
    将zd1 = 'bh1'的zd2的值都改为100
    将zd1 = 'bh2'的zd2的值都改为200
    将zd1 = 'bh3'的zd2的值都改为300
    依次类推用一个update语句能实现吗?
    这样明白了吗?
      

  9.   

    上一行的改成下一行,那么是'a'改成'b'了还是'b'改成'a'啊?
    update table1 a set zd2=
      (select zd2 from table1 b where zd1=a.zd1
        and zd3=a.zd3-1
        )
    where exists(
      select 1 from table1 b where zd1=a.zd1
        and zd3=a.zd3-1
        )
      

  10.   

    update table1 a set zd2=
      (select max(zd2)keep(dense_rank last order by rowid)
       from table1 where zd1=a.zd1)
    where rowid<>(
      select max(rowid) from table1 where zd1=a.zd1)
      

  11.   

    update table a set zd2 = (select zd2 from table where zd2 <> 0 and zd1 = a.zd1) where zd1 = 0这是正确答案,我要结贴了,谢谢你的回答。