SQL Distinct
SQL SELECT DISTINCT:检索唯一值
Section titled “SQL SELECT DISTINCT:检索唯一值”SELECT DISTINCT 语句用于返回一个或多个指定列中的唯一(不同)值。它会自动过滤掉结果集中的重复行。
SELECT DISTINCT 的威力
Section titled “SELECT DISTINCT 的威力”在一个表中,一个列(或列的组合)可能包含许多重复值。有时,您只需要获取其中存在的唯一值列表。例如,您可能想查找所有客户所在的唯一国家,或者您提供的所有唯一产品类别。
DISTINCT 关键字添加到 SELECT 语句中时,会指示数据库在返回结果之前消除这些重复行。
SQL SELECT DISTINCT 语法
Section titled “SQL SELECT DISTINCT 语法”SELECT DISTINCT column1, column2, … FROM table_name WHERE condition; — 可选:在查找唯一值前过滤行
当 DISTINCT 应用于多个列时,只有当所有选定列的值与另一行完全相同时,该行才被视为重复行。
示例数据库:Northwind
Section titled “示例数据库:Northwind”我们将继续使用 Northwind 示例数据库。
以下是 “Customers” 表的选段:
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden
SELECT DISTINCT 示例:列出唯一城市
Section titled “SELECT DISTINCT 示例:列出唯一城市”以下 SQL 语句仅选择 “Customers” 表中 “City” 列的唯一值:
SELECT DISTINCT CityFROM CustomersORDER BY City; -- 可选:按字母顺序对唯一城市进行排序实际应用:这对于填充用户界面中的下拉列表、了解客户的地理分布(不包含重复项)或识别所有销售的唯一产品类型非常有用。
性能注意事项:使用 DISTINCT 可能会对性能产生影响,尤其是在大型表上没有适当索引的情况下,因为数据库需要对数据进行排序或哈希处理以识别重复项。请谨慎使用。