توضیحات
دستور Distinct برای حذف رکوردهای تکراری به کار میرود. این دستور فقط با Select میآید.
دستور
دستور Distinct در pl/sql به این شکل است:
SELECT DISTINCT expressions FROM tables [WHERE conditions];
مثال
• دستور Distinct با یک ستون:
SELECT DISTINCT state FROM customers WHERE last_name = 'Smith';
• دستورDistinct با بیش از یک ستون:
SELECT DISTINCT city, state FROM customers WHERE total_orders > 10 ORDER BY city;
سلام
تفاوت آن با unique چیست
درواقع Unique یک Constraint هست که برروی یک ستون از جدول اعمال میشود که مقادیر تکراری را در هنگام درج رکورد جدید نپزیرد. به عنوان مثلا ستون شماره پرسنلی در جدول پرسنل نمیتواند برای دو شخص متفاوت دارای یک مقدار واحد باشد.
اما دستور Distinct در هنگام نوشت Query استفاده میشود و اگر رکوردهای مختلف دارای مقادیر یکسانی باشد، تنها یکی از آن مقادیر را در پاسخ پرسوجو برمیگرداند. به عنوان مثال در همان جدول پرسنل شما میخواهید بدونید چه فامیلیهایی در بین پرسنل وجود دارد. حال اگر چند پرسنل با نام خانوادگی مثلا محمدی وجود داشته باشد، نیاز نیست محمدی چند بار تکرار شود و اینجا میتوانیم از دستور Distinct همانطور که در این پست توضیح داده شد، استفاده کرد.