标签:city customers DISTINCT SQL 子句 Server state 7.5 SELECT
SQL Server SELECT DISTINCT
目录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
子句。
标签:city,customers,DISTINCT,SQL,子句,Server,state,7.5,SELECT 来源: https://www.cnblogs.com/michaelshen/p/16631091.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。