اپراتور های منطقی زبان SQL
دوستان عزیز
در آموزش گذشته با شرط Where آشنا شدید
علاوه بر اپراتورهای مقایسه که آن ها را آموزش دادیم، در این بخش قرار است تا با اپراتور های منطقی در زبان SQL آشنا شویم:
IS NOT | IS |
NOT BETWEEN | BETWEEN |
NOT IN | IN |
NOT LIKE | LIKE |
- 1) بررسی اپراتور IS
برای مقایسه با NULL هرگز نمیتوانید از اپراتورهای مقایسه که در آموزش قبل خواندید استفاده کنید و باید از اپراتور IS برای مقایسه NULL استفاده کرد.
مثال: برای پیدا کردن مشتریانی ستون region آن ها null باشد:
مقایسه غلط:
SELECT *
FROM Customers
WHERE region = NULL
مقایسه صحیح :
SELECT *
FROM Customers
WHERE region IS NULL
---------------------------
SELECT *
FROM Customers
WHERE region IS NOT NULL
- 2) بررسی اپراتور BETWEEN
برای استفاده در شرط که قرار است بین دو مقدار را برای ما بیابد.
به طور مثال قیمت کالا هایی که بین 10 تا 20 دلار باشند:
SELECT *
FROM Products
WHERE unitprice BETWEEN 10 AND 20
یا اگر بخواهیم بین 10 تا 20 دلار نباشند:
SELECT *
FROM Products
WHERE unitprice NOT BETWEEN 10 AND 20
- 3) بررسی اپراتور IN
اپراتور IN برای مقایسه بین چند مقدار
به طور مثال برای پیدا کردن کالاهایی با id های 1 و 5 و 7
SELECT *
FROM Products
WHERE productId = 1 OR productId = 5 OR productId = 7
روش بالا اگر تعداد مقادیر برای مقایسه زیاد باشد یا از یک SELECT دیگر قرار باشد(در آینده بخش Sub Query میخوانیم) تا مقایسه صورت گیرد بسیار روش سخت و ناکارآمدیست و باید از اپراتور IN استفاده کنیم
SELECT *
FROM Products
WHERE productId IN ( 1 ,5 ,7 )
و برای نقیض آن که در ID های 1 و 5 و 7 نباشد
SELECT *
FROM Products
WHERE productId NOT IN ( 1 ,5 ,7 )
- 4) بررسی اپراتور LIKE
موارد استفاده در مقایسه قسمتی از یک رشته است
به طور مثال پیدا کردن کالاهایی که ابتدای نام آن ها با حرف S شروع شود
SELECT *
FROM Products
WHERE productName LIKE N'S%'
علامت % را هر کجای رشته قرار دهیم یعنی ادامه رشته فرقی ندارد…
برای اینکه انتهای نام S باشد:
WHERE productName LIKE N'%S'
و برای اینکه درون رشته S باشد:
WHERE productName LIKE N'%S%'
و برای یک پوزیشن خاص مثلا دومین حرف S باشد از _ استفاده میکنیم
WHERE productName LIKE N'_S%'
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.