SELECT返回所有匹配的行。但是,如果你不想要每個(gè)值每次都出現(xiàn),怎么辦?例如,假如你想得出products表中產(chǎn)品的所有供應(yīng)商ID:
輸入:
SELECT vend_id FROM products;
輸出:
vend_id 1001 1001 1001 1002 1002 1003 1003 1003 1003 1003 1003 1003 1005 1005
SELECT語(yǔ)句返回14行(即使表中只有4個(gè)供應(yīng)商) ,因?yàn)閜roducts表中列出了14個(gè)產(chǎn)品。那么,如何檢索出有不同值的列表呢?解決辦法是使用DISTINCT關(guān)鍵字,顧名思義,此關(guān)鍵字指示MySQL只返回不同的值。
輸入:
SELECT DISTINCT vend_id FROM products;
SELECT DISTINCT vend_id告訴MySQL只返回不同(唯一)的vend_id行,因此只返回4行,如下面的輸出所示。如果使用DISTINCT關(guān)鍵字,它必須直接放在列名的前面。
輸出:
vend_id 1001 1002 1003 1005
不能部分使用DISTINCT DISTINCT關(guān)鍵字應(yīng)用于所有列而不僅是前置它的列。如果給出SELECT DISTINCT vend_id, prod_price,除非指定的兩個(gè)列都不同,否則所有行都將被檢索出來(lái)。
轉(zhuǎn)載請(qǐng)注明:成都千喜數(shù)據(jù)恢復(fù)中心 » SQL Server如何使用SELECT語(yǔ)句檢索不同的行