首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一条查重的sql语句。解决办法

2012-04-27 
求一条查重的sql语句。比如我要得到所有Name列重复的数据,查询结果要按Name列排序,下面是我通过sql语句得到

求一条查重的sql语句。
比如我要得到所有Name列重复的数据,查询结果要按Name列排序,下面是我通过sql语句得到的一个“表d”,请大家就“表d”中添加上追加上相关sql语句,谢谢!!

C# code
select * from(            select * from               (                      select * from (select * from Orders) a                                full join (select * from PatientCome) b                                on a.GUID = b.ComeGUID               ) c               where (c.ProjectID=16 or RealProjectID=16)                  and                  (                   (convert(varchar(10),Time,120) >= '2010-01-01' and convert(varchar(10),Time,120) <='2015-02-02')                    or (convert(varchar(10),TimeC,120) >= '2010-01-01' and convert(varchar(10),TimeC,120) <='2015-02-02')                  )              ) d


[解决办法]
SQL code
with tb as (select * from(            select * from               (                      select * from (select * from Orders) a                                full join (select * from PatientCome) b                                on a.GUID = b.ComeGUID               ) c               where (c.ProjectID=16 or RealProjectID=16)                  and                  (                   (convert(varchar(10),Time,120) >= '2010-01-01' and convert(varchar(10),Time,120) <='2015-02-02')                    or (convert(varchar(10),TimeC,120) >= '2010-01-01' and convert(varchar(10),TimeC,120) <='2015-02-02')                  )              ) d)select a.* from (select name,count(name) as num from tb  group by name ) a jointb b on a.name=b.name where b.num>1
[解决办法]
SQL code
select d.NAME from(            select * from               (                      select * from (select * from Orders) a                                full join (select * from PatientCome) b                                on a.GUID = b.ComeGUID               ) c               where (c.ProjectID=16 or RealProjectID=16)                  and                  (                   (convert(varchar(10),Time,120) >= '2010-01-01' and convert(varchar(10),Time,120) <='2015-02-02')                    or (convert(varchar(10),TimeC,120) >= '2010-01-01' and convert(varchar(10),TimeC,120) <='2015-02-02')                  )              ) d              GROUP BY d.NAME              HAVING COUNT(d.name)>1              ORDER BY d.name
[解决办法]
SQL code
WITH CTE AS (...)SELECT * FROM CTE AWHERE EXISTS (SELECT 1 FROM CTE WHERE NAME = A.NAME AND TEL <> A.TEL)
[解决办法]
try
SQL code
select * from d twhere (select count(1) from d where name=t.name)>1order by name 

热点排行