java distinct 用法_SQL中distinct的用法(四种示例分析)
时间: 2023-11-27 16:53:56 浏览: 115
Java中的distinct用法和SQL中的distinct用法有些不同,下面分别介绍一下。
## Java中distinct用法
在Java中,distinct主要用于去除集合中的重复元素,常用于List和Stream集合。
### List集合中的distinct用法
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
list.add("banana");
list.add("pear");
List<String> distinctList = list.stream().distinct().collect(Collectors.toList());
System.out.println(distinctList);
```
输出结果为:
```
[apple, banana, orange, pear]
```
### Stream集合中的distinct用法
```java
Stream<String> stream = Stream.of("apple", "banana", "orange", "banana", "pear");
List<String> distinctList = stream.distinct().collect(Collectors.toList());
System.out.println(distinctList);
```
输出结果为:
```
[apple, banana, orange, pear]
```
## SQL中distinct用法
在SQL中,distinct主要用于去除查询结果中的重复行。
### 示例1:查询表中的不同城市
```sql
SELECT DISTINCT city FROM employee;
```
### 示例2:查询表中的不同部门和职位
```sql
SELECT DISTINCT department, position FROM employee;
```
### 示例3:查询表中的不同城市和部门
```sql
SELECT DISTINCT city, department FROM employee;
```
### 示例4:根据多个字段去重查询
```sql
SELECT DISTINCT ON (city, department) city, department, position FROM employee;
```
以上四个示例中,第一个和第二个示例比较简单,第三个示例中查询的是两个字段的组合,第四个示例中使用了DISTINCT ON关键字,可以根据多个字段去重,但是只会保留第一个符合条件的记录。
阅读全文