现有oracle表A,表A有字段B和字段C,表A有100条记录,其中有某些条记录的字段B加字段C组合的值重复了,我要如何查询表A中这些字段B加字段C组合值重复的记录
时间: 2024-03-14 17:46:22 浏览: 50
您可以使用如下SQL语句查询表A中字段B加字段C组合值重复的记录:
```
SELECT B, C, COUNT(*)
FROM A
GROUP BY B, C
HAVING COUNT(*) > 1;
```
这个查询语句会根据字段B和C的值进行分组,并统计每个组内的记录数。最后,使用HAVING子句过滤出记录数大于1的组,即为字段B加字段C组合值重复的记录。
相关问题
oracle表A有一条记录的字段B是空值,现在给该表添加字段B加字段C的联合主键是否会报错
在Oracle中,如果表A已经存在一条记录,字段B是空值,那么给该表添加字段B和字段C的联合主键是会报错的。因为主键的作用是保证表中每条记录的唯一性,如果表中已经存在一条B字段为空的记录,那么在添加字段B和字段C的联合主键后,就会出现多条主键为空的记录,这就违反了主键的唯一性约束。因此,在添加联合主键之前,需要先将表中B字段为空的记录进行处理或删除。
oracle查询a表的name和age字段的值在b表中没有的记录
可以使用 NOT EXISTS 或者 LEFT JOIN...WHERE IS NULL 两种方式查询 a 表的 name 和 age 字段的值在 b 表中没有的记录。
使用 NOT EXISTS 的 SQL 如下:
```
SELECT a.* FROM a WHERE NOT EXISTS (SELECT * FROM b WHERE a.name = b.name AND a.age = b.age);
```
使用 LEFT JOIN...WHERE IS NULL 的 SQL 如下:
```
SELECT a.* FROM a LEFT JOIN b ON a.name = b.name AND a.age = b.age WHERE b.name IS NULL AND b.age IS NULL;
```
这两种方式都可以得到 a 表中的 name 和 age 字段的值在 b 表中没有的记录。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)