SQL 入门教程:检索(SELECT DISTINCT)不同的值

本文内容

目录汇总:SQL 零基础入门教程

SELECT 语句返回所有匹配的行。但是,如果你不希望每个值每次都出现,该怎么办呢?例如,你想检索 Products 表中所有产品供应商的 ID:

输入▼

1
2
SELECT vend_id
FROM Products;

输出▼

vend_id
----------
BRS01
BRS01
BRS01
DLL01
DLL01
DLL01
DLL01
FNG01
FNG01

SELECT 语句返回 9 行(即使表中只有 3 个产品供应商),因为 Products 表中有 9 种产品。那么如何检索出不同的值?

办法就是使用 DISTINCT 关键字,顾名思义,它指示数据库只返回不同的值。

输入▼

1
2
SELECT DISTINCT vend_id
FROM Products;

分析▼

SELECT DISTINCT vend_id 告诉 DBMS 只返回不同(具有唯一性)的 vend_id 行,所以正如下面的输出,只有 3 行。如果使用 DISTINCT 关键字,它必须直接放在列名的前面。

输出▼

vend_id
----------
BRS01
DLL01
FNG01

注意:不能部分使用 DISTINCT

DISTINCT 关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定 SELECT DISTINCT vend_id, prod_price,则 9 行里的 6 行都会被检索出来,因为指定的两列组合起来有 6 个不同的结果。若想看看究竟有什么不同,你可以试一下这样两条语句:

1
2
SELECT DISTINCT vend_id, prod_price FROM Products;
SELECT vend_id, prod_price FROM Products;

请参阅

(完)

comments powered by Disqus

本文内容