با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره آموزش کامل SQL را دنبال می کنند. این بخش در واقع در ادامه ی بخش قبلی که در آن، شما را با عملگر EXISTS آشنا کردیم، ارائه شده است. چراکه در این آموزش نیز، ما شما را با عملگرهای دیگری که برای تست یک دستور SQL، بعد از دستورات شرطی مانند WHERE ، بکار می رود، آشنا خواهیم کرد. حالا برای آشنایی با عملگرهای ANY و ALL در SQL ، ادامه ی مباحث این آموزش را دنبال کنید.
عملگرهای ANY و ALL ، به همراه یکی از دستورات شرطی WHERE یا HAVING ، استفاده می شود.
در عملگر ANY ، اگر هر یک از مقادیر دستور تست شده، مقداری را برگرداند، عملگر ANY مقدار True را برمیگرداند.
در عملگر ALL ، اگر تمام رکوردها در دستور تست شده، مقداری را برگرداند، عملگر ALL مقدار True را برمیگرداند.
ساختار عملگر ANY :
1 2 3 4 | SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition); |
ساختار عملگر ALL :
1 2 3 4 | SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition); |
نکته: باید از عملگرهای مقایسه ای استاندارد (=, <>, !=, >, >=, <, or <=)، استفاده شود.
در این قسمت، به بخشی از رکوردهای دو جدول که در مثال های این آموزش، از آنها، استفاده خواهیم کرد، اشاره می کنیم.
بخشی از رکوردهای جدول “Products” :
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
---|---|---|---|---|---|
۱ | Chais | ۱ | ۱ | ۱۰ boxes x 20 bags | ۱۸ |
۲ | Chang | ۱ | ۱ | ۲۴ – ۱۲ oz bottles | ۱۹ |
۳ | Aniseed Syrup | ۱ | ۲ | ۱۲ – ۵۵۰ ml bottles | ۱۰ |
۴ | Chef Anton’s Cajun Seasoning | ۲ | ۲ | ۴۸ – ۶ oz jars | ۲۲ |
۵ | Chef Anton’s Gumbo Mix | ۲ | ۲ | ۳۶ boxes | ۲۱٫۳۵ |
بخشی از رکوردهای جدول “OrderDetails” :
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
۱ | ۱۰۲۴۸ | ۱۱ | ۱۲ |
۲ | ۱۰۲۴۸ | ۴۲ | ۱۰ |
۳ | ۱۰۲۴۸ | ۷۲ | ۵ |
۴ | ۱۰۲۴۹ | ۱۴ | ۹ |
۵ | ۱۰۲۴۹ | ۵۱ | ۴۰ |
در عملگر ANY ، اگر هر یک از مقادیر دستور تست شده، مقداری را برگرداند، عملگر ANY مقدار True را برمیگرداند.
مثال زیر مقدار true را برمی گرداند و ProductName را از جدول Products لیست می کند. در صورتی که رکوردی پیدا شود که ProductID آن در جدول OrderDetails موجود بوده و مقدار Quantity آن در این جدول برابر با ۱۰ باشد:
1 2 3 | SELECT ProductName FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10); |
مثال زیر همانند مثال بالا عمل می کند، با این تفاوت که باید مقدار Quantity بزرگتر از ۹۹ باشد:
1 2 3 | SELECT ProductName FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 99); |
در عملگر ALL ، اگر دستور تست شده در تمام رکوردها،مقداری را برگرداند، عملگر ALL مقدار True را برمیگرداند.
مثال زیر مقدار True را برگردانده و مقادیر ProductName را از جدول Products لیست می کند. به شرطی که مقدار ProductID آنها با ProductID جدول OrderDetails، برابر بوده و مقدار Quantity در تمام رکوردهای این جدول، برابر با ۱۰ باشد:
1 2 3 | SELECT ProductName FROM Products WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10); |
در ادامه ی مباحث آشنایی با عملگرهای تست دستورات SQL در این بخش، شما را با دو عملگر ALL و ANY و کاربرد هر یک، آشنا کردیم. امیدواریم که از آموزش های بخش آشنایی با عملگرهای ANY و ALL در SQL نیز، بخوبی استفاده کرده باشید.
Saeidkz
با سلام و خسته نباشید خدمت شما
در همین مورد عملگر ANY یه سوال داشتم :
کوئری بنویسید که:
نام کتابهایی را بیاورد که نویسنده انها حداقل ۲ کتاب در کتابخانه نوشته باشد.
این کوئری رو چجوری باید بنویسم لطفا راهنمایی کنید یا جواب رو بگید