7.5 SQL Server查询去重
2022/8/28 2:22:48
本文主要是介绍7.5 SQL Server查询去重,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
SQL Server SELECT DISTINCT
目录- SQL Server SELECT DISTINCT
- SELECT DISTINCT简介
- SELECT DISTINCT示例
- A) DISTINCT单列
- B) DISTINCT多列
- C) DISTINCT NULL值
- DISTINCT与GROUP BY
SELECT DISTINCT简介
有时,您可能只希望在表的指定列中获取不同的值。为此,可以使用SELECT DISTINCT
子句:
SELECT DISTINCT column_name FROM table_name;
查询只返回指定列中的不同值。换句话说,它从结果集中删除列中的重复值。
如果使用多个列:
SELECT DISTINCT column_name1, column_name2 , ... FROM table_name;
查询使用SELECT
列表中所有列中的值组合来计算唯一性。
如果将DISTINCT
子句应用于具有NULL
的列,DISTINCE
子句只保留一个NULL
并删除其他为NULL
的值。换句话说,DISTINCT
子句将所有空NULL
视为相同的值。
SELECT DISTINCT示例
用于演示,假设数据库中有如下客户(customers)表:
A) DISTINCT单列
以下语句返回customers表中所有客户的所有城市:
SELECT city FROM sales.customers ORDER BY city;
从输出中可以清楚地看到,城市是重复的。
要获得不同的城市,使用DISTINCT
关键字:
SELECT DISTINCT city FROM sales.customers ORDER BY city;
city
列去重成功
B) DISTINCT多列
此语句返回所有客户的所有城市和州:
SELECT city, state FROM sales.customers ORDER BY city, state;
以下语句查找所有客户的不同城市和州.
SELECT DISTINCT city, state FROM sales.customers
在本例中,语句使用city
和state
列中的值组合来计算重复项。即这两列值同时都相同才算重复项
C) DISTINCT NULL值
以下示例查找客户的不同电话号码:
SELECT DISTINCT phone FROM sales.customers ORDER BY phone;
在本例中,DISTINCT
子句在phone
列中仅保留一个NULL
,并删除了其他NULL
。
DISTINCT与GROUP BY
下面的语句使用GROUP BY
子句从sales.customers
表中返回不同的城市以及州和邮政编码:
SELECT city, state, zip_code FROM sales.customers GROUP BY city, state, zip_code ORDER BY city, state, zip_code
下图显示了部分输出:
它相当于使用DISTINCT运算符的以下查询:
SELECT DISTINCT city, state, zip_code FROM sales.customers;
DISTINCT
和GROUP BY
子句都通过删除重复项来减少结果集中返回的行数。
但是,如果要对一列或多列应用聚合函数,则应使用GROUP BY
子句。
这篇关于7.5 SQL Server查询去重的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)