查询语句,非常感谢!

kimc 2006-01-05 08:13:17
tb
BH Name
1 电脑
2 电脑
3 桌子
4 电脑
5 球鞋
6 桌子
7 手机
8 桌子
9 足球

查询Name列中出现两次或两次以上的记录
...全文
102 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxw99 2006-01-06
  • 打赏
  • 举报
回复
declare @tbl table (BH varchar(10),Name varchar(10))
insert into @tbl
SELECT '1','电脑' union all
SELECT '2','电脑' union all
SELECT '3','桌子' union all
SELECT '4','电脑' union all
SELECT '5','球鞋' union all
SELECT '6','桌子' union all
SELECT '7','手机' union all
SELECT '8','桌子' union all
SELECT '9','足球'

SELECT
Name
FROM
@tbl
group by
Name
having count(*)>=2
-------------------
Name
电脑
桌子


Michael_javavb 2006-01-05
  • 打赏
  • 举报
回复
sorry,select地方该为
SELECT DISTINCT a.bh,a.name,否则会有重复记录
zhanggao1 2006-01-05
  • 打赏
  • 举报
回复
select * from tb a where exists(select 'x' from tb b where b.name=a.name and b.id<a.id)
ReViSion 2006-01-05
  • 打赏
  • 举报
回复
select * from tb where name in (select name from tb group by name having count(*)>=2)
Michael_javavb 2006-01-05
  • 打赏
  • 举报
回复
刚才还太复杂,但是最符合逻辑习惯,这个更简单
SELECT a.bh,a.name
FROM tb as a,tb as b
WHERE a.bh<>b.bh
and a.name = b.name
--只要你的bh是不重复的即可
$扫地僧$ 2006-01-05
  • 打赏
  • 举报
回复
select * from tb where name in (select name from tb group by name having count(*)>=2)
Michael_javavb 2006-01-05
  • 打赏
  • 举报
回复
一楼不对的
我的答案:
SELECT tb.bh,tb.name
FROM tb,(select max(name) as name,count(name) as tcount
from tb
group by name
)as temp
WHERE tb.name = temp.name
and temp.tcount>1

kimc 2006-01-05
  • 打赏
  • 举报
回复
快,,,
kimc 2006-01-05
  • 打赏
  • 举报
回复
t
bbdx2523 2006-01-05
  • 打赏
  • 举报
回复
select bh,name from tb where ( select count(name) from tb ) > 1

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧