一张表里有几个字段     a   b    c   d    e
     1   2    3   4   11
     5   6    7   4   12
     8   9    10  4   13
我要写一个SQL语句,要更新字段值,我要先条件语句,要搜索符合a=1,b=2,c=3的字段,符合要求后,根据d=4的要求把以上3条记录更新字段e的值不知道高手有什么办法呢??谢谢大家指教一二

解决方案 »

  1.   

    没明白什么意思
    update table set e=value where a=1 and b=2 and c=3 and d=4?
      

  2.   

    表里的数据多贴点
    还有a=1,b=2,c=3但d不是4的情况?
    e的值更新要按照什么依据?
      

  3.   

    不好意思大家了,我整理一下语句一张表里有几个字段       a    b   c   d    e 
    -------------------------------
         1    2    3   4   11 
    --------------------------------
         5    6    7   4   12 
         8    9    10  4   13 
    我要写一个SQL语句,要更新字段值, 我要先条件语句,要搜索符合a=1,b=2,c=3的字段,然后把3条记录的字段e的值更改一下 不知道高手有什么办法呢??谢谢大家指教一二
      

  4.   

    不太明白楼主意思 
    既然是要按条件更新,那么就不会更新所有记录的某个字段值。如果要更新所有记录的,那么就不要限制条件。 我帮你“翻译”一下,看楼主是不是这个意思? 找出符合条件a=1,b=2,c=3的记录的d和e字段的值,然后,根据该记录中d字段的值,如果其他记录中d字段值与之相同,则将其他记录中的e字段值改为该记录中e字段的值。 如果是这个意思的话,那么,需要执行不止一条语句: 
    create procedure P_Name 
    as 
    begin 
    Declare @d int, @e int
    Select @d = d, @e = e From Table Where a = 1 and b = 2 and c = 3
    Update Table Set e = @e Where d = @d
    end说明: 
    1、上述过程取材于楼上的朋友。 
    2、上述过程假设目标数据库是MS SQL Server,且字段为int型 
    3、如果需要只执行一条语句,那么可以试试子查询的方式,不过我电脑上没有MSSQL,无法测试,就不再提供可能误导他人的语句了。呵呵