SQL 查询语句,一个表中两个字段一个相同另一个不同 (马上给分)

joriy 2009-11-09 11:56:46
数据结构
Account dst
123 AB
12345 AA
123 AA
789 CD
如何找出dst字段相同而account字段不相同的数据
...全文
2520 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL77 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 joriy 的回复:]
这样查出来好像很多垃圾数据啊

[/Quote]
那你又不说清楚要什么结果,按你说的就是那个意思呀
joriy 2009-11-09
  • 打赏
  • 举报
回复
这样查出来好像很多垃圾数据啊
SQL77 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 joriy 的回复:]
五万多数据好像就挂了

[/Quote]
你加索引了没有
joriy 2009-11-09
  • 打赏
  • 举报
回复
下面这句好像不行哦
joriy 2009-11-09
  • 打赏
  • 举报
回复
五万多数据好像就挂了
joriy 2009-11-09
  • 打赏
  • 举报
回复
性能好像不怎么样,我在mysql中执行了好久都出来数据
SQL77 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shalen520 的回复:]
select * from table where dst in (select dst from table group by  dst having count(dst )>1) order by dst
[/Quote]
试试这个吧,
happy664618843 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sql77 的回复:]
SQL code/*
-- Author:SQL77--RICHIE
-- Version:V1.001 Date:2008-05-15--转Flystone*/-- Test Data: TBIfobject_id('TB')isnotnullDroptable TBGoCreatetable TB(Accountint,dstvarchar(2))GoInsertinto TBselect123,'AB'unionallselect12345,'AA'unionallselect123,'AA'unionallselect789,'CD'Go--StartSELECT*FROM TB TWHEREEXISTS(SELECT1FROM TBWHERE[DST]=T.[DST]AND Account<>T.Account )--Result:
/*

(所影响的行数为 4 行)

Account dst
----------- ----
12345 AA
123 AA

(所影响的行数为 2 行)*/--End
[/Quote]

不错 好方法 up
SQL77 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 joriy 的回复:]
mysql的也可以吗
[/Quote]
可能语法不同
jiangshun 2009-11-09
  • 打赏
  • 举报
回复
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
create table [TB]([Account] int,[dst] varchar(2))
insert [TB]
select 123,'AB' union all
select 12345,'AA' union all
select 123,'AA' union all
select 789,'CD'

select * from [TB] t where not exists(select 1 from TB where t.Account=Account and t.dst>dst)

/*
Account dst
----------- ----
12345 AA
123 AA
789 CD

(所影响的行数为 3 行)

*/

drop table TB

joriy 2009-11-09
  • 打赏
  • 举报
回复
mysql的也可以吗
shalen520 2009-11-09
  • 打赏
  • 举报
回复
select * from table where dst in (select dst from table group by dst having count(dst )>1) order by dst
SQL77 2009-11-09
  • 打赏
  • 举报
回复
/*
-- Author:SQL77--RICHIE
-- Version:V1.001 Date:2008-05-15--转Flystone

*/

-- Test Data: TB
If object_id('TB') is not null
Drop table TB
Go
Create table TB(Account int,dst varchar(2))
Go
Insert into TB
select 123,'AB' union all
select 12345,'AA' union all
select 123,'AA' union all
select 789,'CD'
Go
--Start
SELECT * FROM TB T WHERE EXISTS(SELECT 1 FROM TB WHERE [DST]=T.[DST] AND Account <>T.Account )


--Result:
/*

(所影响的行数为 4 行)

Account dst
----------- ----
12345 AA
123 AA

(所影响的行数为 2 行)



*/
--End
joriy 2009-11-09
  • 打赏
  • 举报
回复
试试看
SQL77 2009-11-09
  • 打赏
  • 举报
回复
SEELCT * FROM TB T WHERE EXISTS(SELECT 1 FROM TB WHERE [DST]=T.[DST] AND Account <>T.Account )
joriy 2009-11-09
  • 打赏
  • 举报
回复
数据结构
Account dst
123 AB
12345 AA
123 AA
789 CD
如何找出dst字段相同而account字段不相同的数据

自己先顶起
RYAN--333 2009-11-09
  • 打赏
  • 举报
回复
if object_id('[TB]') is not null drop table [TB]
create table [TB]([Account] int,[dst] varchar(2))
insert into [TB] values(123,'aa')
insert into [TB] values(123,'aa')
insert into [TB] values(123,'bb')
insert into [TB] values(123,'bb')
insert into [TB] values(1234,'bb')
insert into [TB] values(123,'cc')
insert into [TB] values(1234,'dd')
insert into [TB] values(1234,'aa')
insert into [TB] values(1235,'aa')

select distinct Account,dst from [TB] where dst in(
select dst from [TB] group by dst having Count( dst) >1)


drop table [TB]
Account dst
123 aa
123 bb
1234 aa
1234 bb
1235 aa
skyctr 2009-11-09
  • 打赏
  • 举报
回复
学习来了
mbh0210 2009-11-09
  • 打赏
  • 举报
回复

select distinct account ,dst from @t where dst in(
select dst from @t group by dst having Count( distinct(Account)) >1)


修改一下17楼的试试
joriy 2009-11-09
  • 打赏
  • 举报
回复
整个表是有很多字段,但是我现在只要这两个字段来区分数据
加载更多回复(5)

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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