可以求助一条SQL语句的写法么?
时间:2011-01-05
来源:互联网
复制内容到剪贴板
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 编辑 ] 代码:
#Tabid 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-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 编辑 ]
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28