+ -
当前位置:首页 → 问答吧 → 可以求助一条SQL语句的写法么?

可以求助一条SQL语句的写法么?

时间:2011-01-05

来源:互联网

复制内容到剪贴板
代码:
#Tab
  id     name     node     point    addr     tag
   1     wangli    89        88     1234      0
   2     zhang     55        99     5689      0
   3     li        65        100    89533     0
   4     tian      002       66     55555     1
   5     wang      88        72     6666      1
   6     zhang     78        58     77777     1
   7     wangli    88        99     77777     1
   7     li        68        199    77777     0
更新tag = 0 记录里的 Node,Point,Addr三个字段里的值,WHERE(条件Name字段值相同并且Tag = 1)
最后,删除Tag = 1 Name重复的记录
例如上面数据表里:
将ID=1的记录里Node,Point,Addr用记录ID=7里Node,Point,addr 替换
将ID=2的记录里Node,Point,Addr用记录ID=6里Node,Point,addr 替换
然后删除记录 6 、7
注记录8不满足更新条件
[ 本帖最后由 mengke726 于 2011-1-5 18:45 编辑 ]

作者: mengke726   发布时间: 2011-01-05

如果是SQL2000数据库的话有可能是这样的.

Update TAB
Set    NODE = T.NODE, POINT = T.POINT, ADDR = T.ADDR, TAG = 1 From TAB, TAB T
Where  TAB.Name = T.Name
       And TAB.TAG = 0
       And T.TAG = 1;

Delete From TAB
Where  Exists (Select 1
        From   TAB T
        Where  TAB.ID > T.ID
               And TAB.Name = T.Name
               And TAB.TAG = 1
               And T.TAG = 1);

[ 本帖最后由 jorkin2000 于 2011-1-6 21:23 编辑 ]

作者: jorkin2000   发布时间: 2011-01-06