日期:2014-05-19  浏览次数:20642 次

筛选问题。
表A:

id                         省                             市
1                       河北                           乐羊
2                       新疆                           乐羊
3                       湖南                           长沙
4                       江西                           南昌
5                       广州                           乐羊
6                       云南                           长沙
。。。。。。。。。。。。。。。。。。。。

要求结果:

id                         省                             市
1                       河北                           乐羊
2                       新疆                           乐羊
5                       广州                           乐羊
3                       湖南                           长沙
6                       云南                           长沙

即:市名相同,省份不同的记录。




------解决方案--------------------
?

Select * From A Order By 市, id
------解决方案--------------------
select * from A a where exists(select 1 from A b where b.市 = a.市)
------解决方案--------------------
select * from a a1
where exists (
select 1 from a
where 省 <> a.省 and 市=a.市
)


------解决方案--------------------
select * from 表A where 市 in
(select 市 from 表A group by 市 having count(市)> 0)



------解决方案--------------------


--創建測試環境
Create Table A
(id Int,
省 Nvarchar(20),
市 Nvarchar(20))
--插入數據
Insert A Select 1, N '河北 ', N '乐羊 '
Union All Select 2, N '新疆 ', N '乐羊 '
Union All Select 3, N '湖南 ', N '长沙 '
Union All Select 4, N '江西 ', N '南昌 '