عملگرهای IN و NOT IN در عبارت WHERE

عملگر IN همانند BETWEEN محدوده ای از مقادیر میان یک بازه را تعیین می کند، عملگر IN نیز محدوده ای از مقادیر را تعیین می کند ولی این محدوده میان دو بازه نیست، بلکه محدوده شامل چندین مقدار است که با ویرگول از هم جدا شده اند.

مثالفهرست تمامی محصول هایی را نشان دهید که نام تولید کننده آنها کی از گزینه های Apple, HTC, Samsung, Huawei و قیمت آن کمتر از یک میلیون تومان باشد.

دستور بالا راهکار قبلی را نشان می دهد که در آن چندین و چند عملگر OR را استفاده کرده ایم و اگر تعداد OR ها بیشتر شود، قاعدتا کوئری ناخوانا خواهد شد، پس لازم است با استفاده از عملگر IN کد بالا را به صورت بازنویسی کنیم تا کد کوچکتر و خواناتری داشته باشیم.

مثالفهرست تمامی کاربرانی را نمایش دهید که شغل آنها یکی از مشاغل SA_MAN یا IT_PROG و حقوق آنها بیش از ۳۰۰۰ دلار باشد.

در مقابل عملگر NOT IN وجود دارد که نقض عملگر IN است. به طور مثال می خواهیم فهرست تمامی کارمندانی را پیدا کنید که شغل آنها IT_PROG و SA_MAN نباشد.

دستورهای بالا دو کوئری مختلف را نشان می دهد که هر دو یک نتیجه را ایجاد می کنند ولی کوئری اول کوچکتر، ساده تر و خواناتر هستند. در وابقع در کوئری اول از عملگر NOT IN استفاده کردیم ولی در کوئری دومی، دو مرتبه از عملگر نا برابری (یا عملگر <>) به همراه عملگر OR استفاده کرده ایم به این معنی که شغل یا IT_PROG نباشد  یا SA_MAN نباشد. عملگر NOT IN نیز همین تفسیر را دارد یعنی شغل یا IT_PROG نباشد  یا SA_MAN نباشد.