SQL检索不同的值

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

    SELECT vend_id
    FROM Products;

输出结果如下:

    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
    ----------
    BRS01
    DLL01
    FNG01

注意:不能部分使用DISTINCT

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

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

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程