关于一条查重某字段的sql语句,发现没重复的也被查出来了。。。
WITH CTE AS (select RowID = ROW_NUMBER() OVER (ORDER BY (case when Time is null then TimeC else Time end) ASC,NEWID()),* 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 * FROM CTE AWHERE EXISTS (SELECT 1 FROM CTE WHERE Tel = A.Tel AND RowID <> A.RowID) order by Tel
SELECT * FROM CTE AWHERE EXISTS (SELECT 1 FROM CTE WHERE Tel = A.Tel AND RowID <> A.RowID and Tel <> N'') order by Tel
[解决办法]
SELECT * FROM CTE AWHERE A.Tel <>'' and EXISTS (SELECT 1 FROM CTE WHERE Tel = A.Tel AND RowID <> A.RowID) order by Tel
[解决办法]
看到2个大问题:
乱用子SQL语句
乱用CTE
[解决办法]