在本文中,我们将讨论 MS SQL Server 中的 distinct 子句。
介绍 :
- 一个表最多由 1000 行构成。
- 在 SQL 术语中称为重复行的重复行的概率可能会出现在表中。
- 在 SQL Server 中,distinct 是用于从表中删除重复项的术语。
基本语法:
select distinct
select_list
from
table_name
例子 :
示例表 – 学生
Roll number | Name | Course |
---|---|---|
111 | Riya | CSE |
112 | Apoorva | ECE |
113 | Mina | Mech |
114 | Rita | Biotechnology |
115 | Veena | Chemical |
116 | Deepa | EEE |
要删除重复项,必须按如下方式编写查询:
select distinct
roll number, name, course
from student
输出将如下 –
Roll number | Name | Course |
---|---|---|
111 | Riya | CSE |
112 | Apoorva | ECE |
113 | Mina | Mech |
114 | Rita | Biotechnology |
115 | Veena | Chemical |
116 | Deepa | EEE |
由于没有重复,因此返回相同数量的行。让我们看一个有重复的例子。
Roll number | Name | Course |
---|---|---|
111 | Riya | CSE |
112 | Apoorva | ECE |
113 | Mina | Mech |
114 | Rita | Biotechnology |
115 | Veena | Chemical |
116 | Deepa | EEE |
111 | Riya | CSE |
查询应写为 –
select distinct
roll number, name, course
from student
输出是 –
Roll number | Name | Course |
---|---|---|
111 | Riya | CSE |
112 | Apoorva | ECE |
113 | Mina | Mech |
114 | Rita | Biotechnology |
115 | Veena | Chemical |
116 | Deepa | EEE |
有一个名为 Riya 的重复项,但通过使用 distinct 删除了重复项。
考虑另一个空值示例。
Roll number | Name | Course |
---|---|---|
111 | Riya | CSE |
112 | Apoorva | ECE |
113 | Mina | Mech |
114 | Rita | Biotechnology |
115 | Veena | Chemical |
116 | – | – |
请注意,在 Deepa 的情况下,名称和课程为空,因此查询写为 –
select distinct
name, roll number, course
from student
输出如下——
Roll number | Name | Course |
---|---|---|
111 | Riya | CSE |
112 | Apoorva | ECE |
113 | Mina | Mech |
114 | Rita | Biotechnology |
115 | Veena | Chemical |
116 | Null |
在空值的情况下,distinct 会删除所有其他空值并仅恢复一个空值,如输出中所示。