不显示某字段有重复的记录 SQL语句
2013-01-05 14:52
183 查看
详细解释下需求:
根据某字段(此例中为StateProvinceID)做判断,如果发现表中该字段有重复值,则结果不显示该条记录。
一,最直接的方法,效率低
二、使用了CTE
三、最终版
还听到有人说可以写个func来判断存临时表,本人没有测试,在此没有列出。
根据某字段(此例中为StateProvinceID)做判断,如果发现表中该字段有重复值,则结果不显示该条记录。
一,最直接的方法,效率低
SELECT * FROM ( SELECT StateProvinceID FROM ( SELECT COUNT(*) AS num ,ad.StateProvinceID FROM Person.Address ad GROUP BY StateProvinceID )AS tt WHERE tt.num<2 --排除重复 ) AS tab INNER JOIN Person.Address addr ON tab.StateProvinceID=addr.StateProvinceID
二、使用了CTE
with t1 AS( SELECT * FROM Person.Address --WHERE AddressID<200 ), t2 AS( SELECT COUNT(*) AS num , t1.StateProvinceID FROM t1 GROUP BY StateProvinceID ) SELECT * FROM T2 INNER JOIN T1 ON t2.StateProvinceID = t1.StateProvinceID WHERE t2.num<2
三、最终版
with t2 AS( SELECT COUNT(*) AS num , t1.StateProvinceID FROM Person.Address t1 GROUP BY StateProvinceID ) SELECT * FROM ( SELECT T2.StateProvinceID FROM t2 WHERE num<2 ) AS T3 INNER JOIN Person.Address t1 ON T3.StateProvinceID=t1.StateProvinceID
还听到有人说可以写个func来判断存临时表,本人没有测试,在此没有列出。
相关文章推荐
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- 查询同一表内多字段同时重复记录的SQL语句
- Sql语句筛选出所有某【字段值重复】的记录!
- 查询同一表内多字段同时重复记录的SQL语句
- 查询同一表内多字段同时重复记录的SQL语句
- 查询同一表内多字段同时重复记录的SQL语句!
- 同一表内多字段同时重复记录的SQL语句
- 查询同一表内多字段同时重复记录的SQL语句!
- 转载:如何写个SQL语句查询一个字段里是否有重复记录如果有只读取其中一条记录
- Sql语句 表中相同的记录(某个字段)只显示一条,按照时间排序显示最大或最小
- 查询同一表内多字段同时重复记录的SQL语句
- 查询同一表内多字段同时重复记录的SQL语句
- 查询同一表内多字段同时重复记录的SQL语句
- 按某一字段取无重复记录sql语句
- 查询同一表内多字段同时重复记录的SQL语句
- SQL语句中把多条记录同一字段的值连接成一个字符串显示结果集(sql stuff)
- 查询同一表内多字段同时重复记录的SQL语句
- 查询同一表内多字段同时重复记录的SQL语句
- 关于SQL中查询重复字段只显示一条记录
- 查询同一表内多字段同时重复记录的SQL语句(转)