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