ورود

View Full Version : چگونه میتوان در عملگر IN از متغیر استفاده کرد؟



idic1
چهارشنبه 11 اردیبهشت 1387, 11:51 صبح
دستور زیر بدون مشکلی اجرا میشود

SELECT pub_name FROM pubs.dbo.publishers WHERE pub_id in ('1389', '0736')

ولی اگر بخواهم مقادیر مورد جستجو را از طریق یک متغیر بدهم ( به شکل زیر ) ، جواب نمیدهد

Declare @List Varchar(100)
Set @List=QuoteName('1389','0736')
SELECT pub_name FROM pubs.dbo.publishers WHERE pub_id in (@List)

الزاما میخواهم این کار را از طریق متغیر انجام دهم ، لطفا راهنمائی فرمائید که چگونه میتوان در عملگر IN از متغیر استفاده کرد. اینکه چرا دستور فوق جواب نمیدهد را ، خودم میدانم
ضمنا در عمل چون تعداد عناصر مشخص نیست ، نمیتوان از Or استفاده کرد
در مثال فوق از دیتابیس Pubs استفاده شده که در SqlServer موجود است.
با تشکر

Amir_Safideh
چهارشنبه 11 اردیبهشت 1387, 12:11 عصر
Declare @List Varchar(100)
Set @List=QuoteName('1389','0736')
Exec('SELECT pub_name FROM pubs.dbo.publishers WHERE pub_id in ('+@List+')')
فقط نمیدونم که متغییری که شما تعریف کردید درست باشه یا نه . شما به آرایه نیاز دارید و نمیدونم که اون تعریف متغییر شما مثل یک آرایه عمل خواهد کرد یا نه . به هر حال من طرح کلی استفاده از متغییر در دستور Select رو خدمتتون عرض کردم . امیدوارم که کمکت بکنه .
--------------
موفق باشید .