2.5 检索不同的值
如前所述,SELECT
语句返回所有匹配的行。但是,如果你不希望每个值每次都出现,该怎么办呢?例如,你想检索products
表中所有产品供应商的ID:
输入▼
SELECT vend_id
FROM Products;
输出▼
vend_id
vend_id
BRS01
BRS01
BRS01
DLL01
DLL01
DLL01
DLL01
FNG01
FNG01
SELECT
语句返回9行(即使表中只有3个产品供应商),因为products
表中有9种产品。那么如何检索出不同的值?
办法就是使用DISTINCT
关键字,顾名思义,它指示数据库只返回不同的值。
输入▼
SELECT DISTINCT vend_id
FROM Products;
分析▼ SELECT DISTINCT vend_id
告诉DBMS只返回不同(具有唯一性)的vend_id
行,所以正如下面的输出,只有3行。如果使用DISTINCT
关键字,它必须直接放在列名的前面。
输出▼
vend_id
vend_id
BRS01
DLL01
FNG01
警告:不能部分使用
DISTINCT
DISTINCT
关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定SELECT DISTINCT vend_id, prod_price
,除非指定的两列完全相同,否则所有的行都会被检索出来。