Sql
有以下MSSQL2008中一个名为AAA的数据库,TTT1表:
ttt1
公司名称 省份 市
山东工具制造有限公司出口部 山东 济宁
山东工具制造有限公司出口部 山东
曲阜圣都筷子店 山东 东昌府
济宁嘉富化肥有限公司 山东 济宁
济宁嘉富化肥有限公司 山东 济宁
要实现的目的:
凡是”公司名称”有重复的全部用SQL语句删除掉,实现后的效果如下:
ttt2
公司名称 省份 市
曲阜圣都筷子店 山东 东昌府
请写得简单点,直接给执行语句,我不是很精通技术,太复杂的看不懂,谢谢.
问题点数:20 回复次数:32 修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* happyflystone
* 无枪狙击手
* 等级:
* 可用分等级:大地主
* 总技术分:94804
* 总技术分排名:61
*
发表于:2009-02-04 13:44:011楼 得分:0
select *
from ttt1 a
where not eixsts(select 1 from ttt1 where 公司名称 = a.公司名称 )
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* Yang_
* 扬帆破浪
* 等级:
* 可用分等级:掌柜
* 总技术分:70930
* 总技术分排名:101
*
2
5
发表于:2009-02-04 13:49:062楼 得分:0
SQL code
DELETE A from ttt1 A,( SELECT 公司名称 FROM TTT1 GROUP BY 公司名称 HAVING COUNT(1)>1) as t where t.公司名称 = a.公司名称
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* happyflystone
* 无枪狙击手
* 等级:
* 可用分等级:大地主
* 总技术分:94804
* 总技术分排名:61
*
发表于:2009-02-04 13:49:153楼 得分:0
sorry
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* Yang_
* 扬帆破浪
* 等级:
* 可用分等级:掌柜
* 总技术分:70930
* 总技术分排名:101
*
2
5
发表于:2009-02-04 13:51:284楼 得分:0
如果只是查询
SQL code
select A.* from ttt1 A,( SELECT 公司名称 FROM TTT1 GROUP BY 公司名称 HAVING COUNT(1)>1) as t where t.公司名称 = a.公司名称
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* happyflystone
* 无枪狙击手
* 等级:
* 可用分等级:大地主
* 总技术分:94804
* 总技术分排名:61
*
发表于:2009-02-04 13:51:295楼 得分:0
SQL code
select * from ttt1 a where not exists(select 1 from (SELECT 公司名称 FROM ttt1 GROUP BY 公司名称 HAVING COUNT(1)>1) b where 公司名称 = a.公司名称 )
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* claro
*
* 等级:
* 可用分等级:中农
* 总技术分:1534
* 总技术分排名:15195
*
发表于:2009-02-04 13:51:536楼 得分:0
帮顶
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* Yang_
* 扬帆破浪
* 等级:
* 可用分等级:掌柜
* 总技术分:70930
* 总技术分排名:101
*
2
5
发表于:2009-02-04 13:52:317楼 得分:0
晕,搞错
SQL code
select A.* from ttt1 A,( SELECT 公司名称 FROM TTT1 GROUP BY 公司名称 HAVING COUNT(1)=1) as t where t.公司名称 = a.公司名称
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* lihan6415151528
* 李晗,爱赌,执着于java技术
* 等级:
* 可用分等级:大财主
* 总技术分:27780
* 总技术分排名:399
*
6
发表于:2009-02-04 13:54:178楼 得分:0
SQL code
drop table ttt1 create table ttt1(公司名称 varchar(40),省份 varchar(50),市 varchar(20)) insert ttt1 select '山东工具制造有限公司出口部','山东','济宁' union all select '山东工具制造有限公司出口部','山东','济南' union all select '曲阜圣都筷子店','山东','济宁' union all select '济宁嘉富化肥有限公司 ','山东','东昌府' union all select '济宁嘉富化肥有限公司 ','山东','济宁' go select * from ttt1 (所影响的行数为 5 行) 公司名称 省份 市 ---------------------------------------- -------------------------------------------------- -------------------- 山东工具制造有限公司出口部 山东 济宁山东工具制造有限公司出口部 山东 济南曲阜圣都筷子店 山东 济宁济宁嘉富化肥有限公司 山东 东昌府济宁嘉富化肥有限公司 山东 济宁 (所影响的行数为 5 行) DELETE A from ttt1 A,( SELECT 公司名称 FROM TTT1 GROUP BY 公司名称 HAVING COUNT(1)>1) as t where t.公司名称 = a.公司名称 select * from ttt1 (所影响的行数为 4 行) 公司名称 省份 市 ---------------------------------------- -------------------------------------------------- -------------------- 曲阜圣都筷子店 山东 济宁 (所影响的行数为 1 行)
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* pengxuan
* 网虫先生
* 等级:
* 可用分等级:富农
* 总技术分:12711
* 总技术分排名:1440
*
发表于:2009-02-04 13:58:539楼 得分:0
SQL code
delete AAA from AAA a where (select count(*) from AAA where 公司名称=a.公司名称)>1
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* zlp321002
* 龙卷风2008
* 等级:
* 可用分等级:富农
* 总技术分:54152
* 总技术分排名:154
*
3
发表于:2009-02-04 14:03:1010楼 得分:0
SQL code
delete ttt1 where 公司名称 in (select 公司名称 from ttt1 group by 公司名称 having count(1)>1)
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* lihan6415151528
* 李晗,爱赌,执着于java技术
* 等级:
* 可用分等级:大财主
* 总技术分:27780
* 总技术分排名:399
*
6
发表于:2009-02-04 14:07:1911楼 得分:0
SQL code
delete a from ttt1 a where 公司名称 in(select 公司名称 from ttt1 group by 公司名称 having count(*)>1)
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* lyx_0010
* 流云匣
* 等级:
* 可用分等级:中农
* 总技术分:10
* 总技术分排名:314300
*
发表于:2009-02-04 15:03:4912楼 得分:0
学习了
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* zfj36
*
* 等级:
* 可用分等级:短工
* 总技术分:0
* 总技术分排名:333603
*
发表于:2009-02-04 15:24:1813楼 得分:0
学到了,谢谢。
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* lbaj123
* ryhuua
* 等级:
* 可用分等级:长工
* 总技术分:0
* 总技术分排名:333603
*
发表于:2009-02-04 20:27:1614楼 得分:0
学习了
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* liulcsy
* sadf
* 等级:
* 可用分等级:富农
* 总技术分:109
* 总技术分排名:91062
*
发表于:2009-02-05 11:09:0715楼 得分:0
太简单了吧,
分组统计大于2的记录删掉就完了。
考SB的题吧,
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* cryks
*
* 等级:
* 可用分等级:乞丐
* 总技术分:155
* 总技术分排名:72590
*
发表于:2009-02-05 11:29:2316楼 得分:0
楼上纯属找骂型
签定完毕
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* linv89
* o(∩_∩)o...
* 等级:
* 可用分等级:长工
* 总技术分:333
* 总技术分排名:46355
*
发表于:2009-02-05 11:42:2117楼 得分:0
学习了 !
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* shouzhi2007
*
* 等级:
* 可用分等级:贫农
* 总技术分:32
* 总技术分排名:200960
*
发表于:2009-02-05 13:30:5018楼 得分:0
学习,不过 还有点没有看明白。
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* wengyupeng
*
* 等级:
* 可用分等级:贫农
* 总技术分:0
* 总技术分排名:333603
*
发表于:2009-02-05 13:51:3119楼 得分:0
10楼的 简单 ,正确的
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* tjm_hyh69796520
*
* 等级:
* 可用分等级:长工
* 总技术分:6
* 总技术分排名:256052
*
发表于:2009-02-05 14:23:5820楼 得分:0
DELETE FROM (SELECT COUNT(*) AS TotalCount FROM tt1) AS A WHERE A.TotalCount>1
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* tjm_hyh69796520
*
* 等级:
* 可用分等级:长工
* 总技术分:6
* 总技术分排名:256052
*
发表于:2009-02-05 15:08:3421楼 得分:0
Sorry!
上面语句有错误.
DELETE FROM ttt1 WHERE 公司名称 NOT IN(
SELECT 公司名称 FROM ttt1
HAVING COUNT(公司名称)>1
)
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* zzxap
* 风乔
* 等级:
* 可用分等级:贫农
* 总技术分:4440
* 总技术分排名:4949
*
发表于:2009-02-05 16:57:2222楼 得分:0
delete ttt1
where 公司名称 in (select 公司名称 from ttt1
group by 公司名称
having count(1)>1)
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* qq369759459
* 新手来啦
* 等级:
* 可用分等级:短工
* 总技术分:0
* 总技术分排名:333603
*
发表于:2009-02-05 23:20:2123楼 得分:0
各位大虾们 本人新手看得不太明白
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* iamsyu
* iamsyu
* 等级:
* 可用分等级:中农
* 总技术分:161
* 总技术分排名:71022
*
发表于:2009-02-06 10:14:5924楼 得分:0
引用 10 楼 zlp321002 的回复:
SQL codedeletettt1where公司名称in(select公司名称fromttt1groupby公司名称havingcount(1)>1)
支持这个
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* fuhuiping
* 该用户很懒,没有设置昵称
* 等级:
* 可用分等级:短工
* 总技术分:0
* 总技术分排名:333603
*
发表于:2009-02-06 10:21:3025楼 得分:0
为什么多加个号不行,比如delete * from ttt1 where 公司名称in(select 公司名称from ttt1 group by 公司名称having count()>1); 是不是MSSQL2005和2008不支持这种形式?
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* huangjietao
* 紫 龙
* 等级:
* 可用分等级:中农
* 总技术分:741
* 总技术分排名:25394
*
发表于:2009-02-06 11:55:3726楼 得分:0
delete from leaveword where id not in ((select min(id) from leaveword group by name having count()>1) union all (select max(id) from leaveword group by name having count()=1))
所有剩余一条
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* feifeiyiwen
* 该用户很懒,没有设置昵称
* 等级:
* 可用分等级:中农
* 总技术分:247
* 总技术分排名:69766
*
发表于:2009-02-06 11:56:4727楼 得分:0
谢谢分享
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* southbirdfly
* windytell
* 等级:
* 可用分等级:富农
* 总技术分:86
* 总技术分排名:102108
*
发表于:2009-02-06 12:52:1428楼 得分:0
学习~~
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* hc_723
*
* 等级:
* 可用分等级:长工
* 总技术分:0
* 总技术分排名:333603
*
发表于:2009-02-06 13:50:2729楼 得分:0
select * from t group by name having count(name)=1;
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* conan304
* 没有谁会是谁的谁
* 等级:
* 可用分等级:中农
* 总技术分:3573
* 总技术分排名:6087
*
发表于:2009-02-06 14:29:5530楼 得分:0
SQL code
declare @ttt1 table(公司名称 varchar(40),省份 varchar(50),市 varchar(20)) insert @ttt1 select '山东工具制造有限公司出口部','山东','济宁' union all select '山东工具制造有限公司出口部','山东','济南' union all select '曲阜圣都筷子店','山东','济宁' union all select '济宁嘉富化肥有限公司 ','山东','东昌府' union all select '济宁嘉富化肥有限公司 ','山东','济宁' select * from @ttt1 delete from @ttt1 where 公司名称 in(select 公司名称 from @ttt1 group by 公司名称 having count(公司名称)>1 ) select * from @ttt1 /* (所影响的行数为 5 行) 公司名称 省份 市 ---------------------------------------- -------------------------------------------------- -------------------- 山东工具制造有限公司出口部 山东 济宁山东工具制造有限公司出口部 山东 济南曲阜圣都筷子店 山东 济宁济宁嘉富化肥有限公司 山东 东昌府济宁嘉富化肥有限公司 山东 济宁 (所影响的行数为 5 行) (所影响的行数为 4 行) 公司名称 省份 市 ---------------------------------------- -------------------------------------------------- -------------------- 曲阜圣都筷子店 山东 济宁 (所影响的行数为 1 行) */
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* willflyz
* 深秋
* 等级:
* 可用分等级:中农
* 总技术分:497
* 总技术分排名:34482
*
发表于:2009-02-06 15:14:4131楼 得分:0
学习
修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
* 64932483
* 菜籽
* 等级:
* 可用分等级:中农
* 总技术分:69
* 总技术分排名:113959
*
发表于:2009-02-08 01:25:2532楼 得分:0
引用 30 楼 conan304 的回复:
SQL codedeclare@ttt1table(公司名称varchar(40),省份varchar(50),市 varchar(20))insert@ttt1select’山东工具制造有限公司出口部’,’山东’,’济宁’unionallselect’山东工具制造有限公司出口部’,’山东’,’济南’unionallselect’曲阜圣都筷子店’,’山东’,’济宁’unionallselect’济宁嘉富化肥有限公司’,’山东’,’东昌府’unionallselect’济宁嘉富化肥有限公司’,’山东’,’济宁 ‘select*from@ttt1deletefrom@ttt1where公司名称in(select公司名称…
支持这个,能看明白
- 上一篇 给恋爱中的ggdd的一点建议
- 下一篇 Z弟弟