有時候,數據表中會存在相同的記錄。在獲取表中記錄時,相較于取得重復記錄來說,取得唯一的記錄顯然更有意義。
我們之前討論過的 SQL DISTINCT 關鍵字,與 SELECT 語句一起使用可以時,可以達到消除所有重復記錄,只返回唯一記錄的目的。
利用 DISTINCT 關鍵字來消除重復記錄的基本語法如下所示:
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
考慮 CUSTOMERS 表,表中記錄如下所示:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
首先,讓我們先看一下 SELECT 語句是如何返回重復的薪水記錄的:
SQL> SELECT SALARY FROM CUSTOMERS
ORDER BY SALARY;
運行上述語句將會得到以下結果,其中 SALARY 為 2000 的記錄出現了兩次,即來自原始數據表的重復記錄:
+----------+
| SALARY |
+----------+
| 1500.00 |
| 2000.00 |
| 2000.00 |
| 4500.00 |
| 6500.00 |
| 8500.00 |
| 10000.00 |
+----------+
現在,讓我們在上面的 SELECT 查詢中使用 DISTINCT 關鍵字,然后觀察將會得到什么結果:
SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
ORDER BY SALARY;
上述語句將會產生如下結果,這一再沒有任何重復的條目了:
+----------+
| SALARY |
+----------+
| 1500.00 |
| 2000.00 |
| 4500.00 |
| 6500.00 |
| 8500.00 |
| 10000.00 |
+----------+