PostgreSQL

سرفصل دروس

IN

دستور زبان عملگر IN در PostgreSQL

شما از عملگر IN در دستور  WHERE استفاده می نمایید تا مشخص نمایید یک مقدار در لیست مقادیر وجود دارد یا خیر. دستور زبان عملگر IN بصورت زیر می باشد: 

value IN (value1,value2,...)

درصورت وجود مقدار در لیست مقدار true  برگردانده می شود. لیست مقادیر تنها به داده رشته ای و عددی محدود نمی باشد بلکه می تواند نتیجه دستور SELECT باشد:

value IN (SELECT value FROM tbl_name);

دستور داخل پرانتز یک زیر پرس و جو می باشد. 

 

مثال عملگر IN در PostgreSQL

فرض کنید اطلاعات مربوط به اجاره های مشتریان با ID 1 و 2 را می خواهید. می توانید برای این منظور از عبارت IN استفاده نمایید: 

SELECT
 customer_id,
 rental_id,
 return_date
FROM
 rental
WHERE
 customer_id IN (1, 2)
ORDER BY
 return_date DESC;

عملگر IN

 

شما همچنین میتوانید از = و عملگر OR برای بازنویسی پرس و جوی بالا استفاده نمایید:

SELECT
 rental_id,
 customer_id,
 return_date
FROM
 rental
WHERE
 customer_id = 1
OR customer_id = 2
ORDER BY
 return_date DESC;

همانطور که مشاهده می نمایید پرس و جویی که از عملگر IN استفاده کرده است کوتاه تر و قابل فهم تر می باشد. همچنین این عبارت بسیار سریعتر اجرا می شود. 

 

عملگر NOT IN در PostgreSQL

شما می توانید عملگر IN و NOT را با هم ترکیب نمایید تا ردیف هایی را انتخاب نمایید که مقادیر آنها در لیست مقادیر موجود نمی باشد. دستور زیر لیست اجاره مشتریانی را انتخاب می نماید که id آنها برابر 1 و 2 نمی باشد. 

SELECT
 customer_id,
 rental_id,
 return_date
FROM
 rental
WHERE
 customer_id NOT IN (1, 2);

عملگر NOT IN

 

همچنین می توانید دستور بالا را با عملگر های نا برابری <> و AND بازنویسی نمایید:

SELECT
 customer_id,
 rental_id,
 return_date
FROM
 rental
WHERE
 customer_id <> 1
AND customer_id <> 2;

 

دستور IN در PostgreSQL به همراه زیر پرس و جو

پرس و جوی زیر لیست id مشتریانی را نمایش می دهد که تاریخ بازگشت اجاره آنها 2005-05-27 می باشد:

SELECT
 customer_id
FROM
 rental
WHERE
 CAST (return_date AS DATE) = '2005-05-27'

زیر پرس و جو

 

شما میتوانید از لیست id مشتریان به عنوان ورودی IN استفاده نمایید:

SELECT
 first_name,
 last_name
FROM
 customer
WHERE
 customer_id IN (
 SELECT
 customer_id
 FROM
 rental
 WHERE
 CAST (return_date AS DATE) = '2005-05-27'
 );

زیر پرس و جو

 

اشتراک گذاری :