首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一条修改语句解决方法

2012-03-12 
求一条修改语句一直表a(fid,fName,fdbID)数据如下fid,fName,fdbID1A12B19A2我想修改成如下效果fid,fName,f

求一条修改语句
一直表a (fid,fName,fdbID)

数据如下


fid,fName,fdbID
 1 A 1
 2 B 1
 9 A 2

我想修改成如下效果

fid,fName,fdbID
 1 A 1
 2 B 1
 1 A 2
-------------------------------------------------
就是把 fdbID=2 的记录和fDbID=1 的记录做比较 如果fName相同 把fid 修改成 (fdbID=1)的fid 请问怎么写?

[解决办法]
update a set fid = (select min(fid) from a where fName = t.fName) from a t
[解决办法]

SQL code
create table a(fid int,fName varchar(10),fdbID int)insert into a values( 1 ,'A', 1)insert into a values( 2 ,'B', 1)insert into a values( 9 ,'A', 2)goupdate a set fid = (select min(fid) from a where fName = t.fName) from a tselect * From adrop table a /*fid         fName      fdbID       ----------- ---------- ----------- 1           A          12           B          11           A          2(所影响的行数为 3 行)*/
[解决办法]
SQL code
update t2set fid=t1.fidfrom a as t1 inner join a as t2 on t1.fname=t2.fname where t1.fdbID=1 and t2.fdbID=2
[解决办法]
探讨
大侠 我表述的不清楚 那个

fid,fName,fdbID
1 A 1
2 B 1
9 A 2

可能不是递增的 可能是如下情况

fid,fName,fdbID
9 A 1
10 B 1
1 A 2

修改为
fid,fName,fdbID
9 A 1
10 B 1
9 A 2

[解决办法]
vfp9.0:
sele * from a where fDbID=1 into table my1
sele * from a where fDbID=2 into table my2
update my2 set my2.fid =my1.fid from my1 where my2.fName=my1.fName
sele * from my2 union sele * from my1 into table result
[解决办法]
探讨

大侠 我表述的不清楚 那个

fid,fName,fdbID
1 A 1
2 B 1
9 A 2

可能不是递增的 可能是如下情况

fid,fName,fdbID
9 A 1
10 B 1
1 A 2

修改为
fid,fName,fdbID
9 A 1
10 B 1
……

热点排行