UPDATE TABLE1 SET PARENTNAME=C.FNAME FROM TABLE1 ,
(SELECT A.PARENTCODE,B.FCODE,B.FNAME FROM TABLE1 A,TABLE1 B WHERE A.PARENTCODE=B.FCODE)C
WHERE TABLE1.PARENTCODE=C.PARENTCODE 
以上是sql 2000下的语句
table1有四个字段parentcode,parentname,fcode,fname分别对应上级编码,上级名称,编码,名称
现在要把上级编码对应的名称写到parentname中
id          parentcode parentname fcode      fname      
----------- ---------- ---------- ---------- ---------- 
591         A          成品A        A1         半成品A1
592         A          成品A        A2         半成品A2
593         1          NULL         A          成品A不知道用Oracle怎么写

解决方案 »

  1.   

    UPDATE TABLE1 SET PARENTNAME=(select C.FNAME 
    FROM (SELECT A.PARENTCODE,B.FCODE,B.FNAME FROM TABLE1 A,TABLE1 B 
    WHERE A.PARENTCODE=B.FCODE)C
    WHERE TABLE1.PARENTCODE=C.PARENTCODE  )
    ;
      

  2.   

    UPDATE TABLE1 SET PARENTNAME=SELECT C.FNAME FROM 
    (SELECT A.PARENTCODE,B.FCODE,B.FNAME FROM TABLE1 A,TABLE1 B WHERE A.PARENTCODE=B.FCODE) --这样应该就可以了吧?