PDA

View Full Version : دستور select



مسلم نیکرو
شنبه 08 بهمن 1390, 15:40 عصر
با سلام
من سه تا جدول دارم
در جدول Tbl3 فیلدی به نام Col1دارم که با یکی از فیلدهای جدول tbl1 یا tbl2 ،Join می شود
میخواهم دستور Select ایی بنویسم که ابتدا به جدولtbl1 ، joinشود در صورتی که خروجی null بود با جدول tbl2 ،join شود

یوسف زالی
شنبه 08 بهمن 1390, 20:27 عصر
سلام.
دوست من لطفا از این به بعد تیتر مناسبی برای پستتون انتخاب کنید تا پستتون پاک نشه.
در مورد دستور سلکت:
select * into #T from TBL3 join TBL1 on F3=F1
if exists(select top 1 1 from #T) select * from #T
else select * from TBL3 join TBL2 on F3 = F2
drop table #T

tiphooo
یک شنبه 09 بهمن 1390, 01:04 صبح
SELECT *,IsNull((SELECT Col2 FROM tbl1 WHERE Col1=tbl3.Col1),(SELECT Col2 FROM tbl2 WHERE Col1=tbl3.Col1)) As Col2 FROM tbl3

یوسف زالی
یک شنبه 09 بهمن 1390, 04:16 صبح
راهی که شما دارید بیان می کنید خیلی با راهی که من گفتم فرق داره.
شما فقط هر ردیف رو در سلکت تست کردید اما طبق برداشتی که من از جملات دوستمون کردم اگر کل جدول نال باشه جدول با جدول دوم join می شه.
در ضمن راه شما تنها برای رابطه یک به یک جواب می ده و برای رابطه های دیگه ارور می ده.
اگر منظور دوستمون برداشت شما باشه در حالت کلی این راه وجود داره:

select * from TBL3
left join TBL1 on F3 = F1
left join TBL2 on F3 = F2 and F1 is NULL

به جای ستاره فیلد های مورد نظر رو می گذارید.
می تونید این رو هم اضافه کنید:
where isnull(F1, F2) is not NULL

project80888
یک شنبه 09 بهمن 1390, 20:18 عصر
یاتشکر از دوستان
جواب tiphooo مشکلمو حل کرد
ممنون