sqlserver 查询表数据三个字段分别交叉和其他数据有重复
时间: 2024-02-25 09:51:40 浏览: 72
如果要查询表中三个字段分别交叉和其他数据是否有重复值,可以使用如下的 SQL 语句:
```sql
SELECT t1.column1, t2.column2, t3.column3, COUNT(*)
FROM table_name t1
INNER JOIN table_name t2 ON t1.column1 = t2.column1 AND t1.column2 = t2.column2 AND t1.column3 <> t2.column3
INNER JOIN table_name t3 ON t1.column1 = t3.column1 AND t1.column3 = t3.column3 AND t1.column2 <> t3.column2
WHERE t1.column1 <> t1.column2 AND t1.column1 <> t1.column3 AND t1.column2 <> t1.column3
GROUP BY t1.column1, t2.column2, t3.column3
HAVING COUNT(*) > 1;
```
其中,`column1`、`column2`、`column3` 是要查询的三个字段名,`table_name` 是要查询的表名。这条 SQL 语句使用了三个内部连接,将表按照三个字段分别和其他行进行比较,筛选出符合条件的行,最后按照三个字段进行分组并统计每组中的数量,最后筛选出数量大于 1 的组,这些组中的值就是重复的。需要注意的是,这里的条件要求每个字段都不相等,可以根据实际情况进行修改。
阅读全文