--- machine_translated: true machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd --- # بند مجزا {#select-distinct} اگر `SELECT DISTINCT` مشخص شده است, تنها ردیف منحصر به فرد در یک نتیجه پرس و جو باقی خواهد ماند. بنابراین تنها یک ردیف از تمام مجموعه از ردیف به طور کامل تطبیق در نتیجه باقی خواهد ماند. ## پردازش پوچ {#null-processing} `DISTINCT` با این نسخهها کار میکند [NULL](../../syntax.md#null-literal) همانطور که اگر `NULL` یک مقدار خاص بودند, و `NULL==NULL`. به عبارت دیگر در `DISTINCT` نتایج, ترکیب های مختلف با `NULL` رخ می دهد تنها یک بار. این متفاوت است `NULL` پردازش در بسیاری از زمینه های دیگر. ## جایگزین ها {#alternatives} ممکن است با استفاده از همان نتیجه حاصل شود [GROUP BY](group-by.md) در سراسر همان مجموعه ای از ارزش ها به عنوان مشخص شده به عنوان `SELECT` بند, بدون استفاده از هر گونه توابع کل. اما چند تفاوت از وجود دارد `GROUP BY` رویکرد: - `DISTINCT` می توان همراه با `GROUP BY`. - چه زمانی [ORDER BY](order-by.md) حذف شده است و [LIMIT](limit.md) تعریف شده است, پرس و جو متوقف می شود در حال اجرا بلافاصله پس از تعداد مورد نیاز از ردیف های مختلف خوانده شده است. - بلوک های داده خروجی به عنوان پردازش می شوند, بدون انتظار برای کل پرس و جو را به پایان برساند در حال اجرا. ## محدودیت ها {#limitations} `DISTINCT` پشتیبانی نمی شود اگر `SELECT` حداقل یک ستون جداگانه دارد. ## مثالها {#examples} کلیک پشتیبانی با استفاده از `DISTINCT` و `ORDER BY` بند برای ستون های مختلف در یک پرس و جو. این `DISTINCT` بند قبل از اجرا `ORDER BY` بند بند. جدول نمونه: ``` text ┌─a─┬─b─┐ │ 2 │ 1 │ │ 1 │ 2 │ │ 3 │ 3 │ │ 2 │ 4 │ └───┴───┘ ``` هنگام انتخاب داده ها با `SELECT DISTINCT a FROM t1 ORDER BY b ASC` پرس و جو, ما نتیجه زیر را دریافت کنید: ``` text ┌─a─┐ │ 2 │ │ 1 │ │ 3 │ └───┘ ``` اگر ما جهت مرتب سازی را تغییر دهیم `SELECT DISTINCT a FROM t1 ORDER BY b DESC` ما نتیجه زیر را دریافت می کنیم: ``` text ┌─a─┐ │ 3 │ │ 1 │ │ 2 │ └───┘ ``` سطر `2, 4` قبل از مرتب سازی قطع شد. نگاهی به این ویژگی پیاده سازی به حساب زمانی که برنامه نویسی نمایش داده شد.