دستور SELECT DISTINCT در SQL برای انتخاب تنها مقادیر منحصر به فرد (مختلف) استفاده می‌شود. این دستور به شما کمک می‌کند تا از نمایش داده‌های تکراری جلوگیری کنید.

مثال ساده

فرض کنید می‌خواهید همه کشورهایی که در جدول “Customers” (مشتریان) موجود است را به دست آورید و تنها کشورهای مختلف را نمایش دهید:

SELECT DISTINCT Country FROM Customers;

در این مثال، SQL تنها کشورهای مختلف را به شما نمایش می‌دهد و کشورهای تکراری را حذف می‌کند.


چرا از SELECT DISTINCT استفاده می‌کنیم؟

در هر جدول، یک ستون می‌تواند حاوی مقادیر تکراری زیادی باشد. در این صورت، اگر بخواهید فقط مقادیر مختلف آن ستون را ببینید، از دستور SELECT DISTINCT استفاده می‌کنید.

مثال کاربردی

فرض کنید در جدول “Customers” چندین مشتری از یک کشور خاص مانند “آلمان” وجود دارد. اگر می‌خواهید فقط کشورهای مختلف را ببینید، از دستور SELECT DISTINCT استفاده می‌کنید.


نحو (Syntax) دستور SELECT DISTINCT

برای استفاده از دستور SELECT DISTINCT، باید آن را به این شکل بنویسید:

SELECT DISTINCT Country, CustomerName FROM Customers;

در اینجا:

  • column1, column2, ... ستون‌هایی هستند که می‌خواهید داده‌های منحصر به فرد آن‌ها را نمایش دهید.
  • table_name نام جدول است که می‌خواهید از آن داده‌ها را انتخاب کنید.

مثال

اگر بخواهید کشورهای مختلف و نام مشتری‌ها را از جدول “Customers” نمایش دهید:

SELECT DISTINCT Country, CustomerName FROM Customers;

مثال بدون استفاده از DISTINCT

اگر از دستور DISTINCT استفاده نکنید، SQL تمامی مقادیر (حتی تکراری) را به شما نمایش می‌دهد.

مثال:

SELECT Country FROM Customers;

در این مثال، تمام کشورها بدون در نظر گرفتن تکراری بودنشان به شما نمایش داده می‌شوند.


استفاده از DISTINCT با COUNT

اگر می‌خواهید تعداد کشورهای مختلف را شمارش کنید، می‌توانید از دستور COUNT همراه با DISTINCT استفاده کنید. این به شما تعداد مقادیر منحصر به فرد را می‌دهد.

مثال:

SELECT COUNT(DISTINCT Country) FROM Customers;

این دستور تعداد کشورهای مختلف را از جدول “Customers” به شما نشان می‌دهد.

نکته:

در پایگاه داده‌های Microsoft Access، از دستور COUNT(DISTINCT column_name) پشتیبانی نمی‌شود. در این صورت، باید از روش جایگزین استفاده کنید.

راه‌حل در MS Access:

SELECT Count(*) AS DistinctCountries
FROM (SELECT DISTINCT Country FROM Customers);

جمع‌بندی

  • دستور SELECT DISTINCT به شما کمک می‌کند تا مقادیر منحصر به فرد را از یک ستون انتخاب کنید.
  • این دستور از تکرار داده‌ها جلوگیری می‌کند و فقط مقادیر متفاوت را نمایش می‌دهد.
  • برای شمارش تعداد مقادیر منحصر به فرد از COUNT(DISTINCT column_name) استفاده کنید.

تمرین

شما جدول “Customers” را دارید. دستور SQL ای بنویسید که تنها نام‌های مشتری‌های مختلف را از این جدول به دست آورد.