PDA

View Full Version : اشکال در Left Joinکردن دو جدول



majid216
جمعه 07 آذر 1393, 14:48 عصر
سلام
دو جدول دارم که با هم Left Join شده اند فیلد بعضی از رکورد های جدول دوم null می باشد (دلیل آن هم این است که تعداد رکوردهای جدول دوم به اندازه تعداد رکوردهای جدول اول نیست) حالا من می خواهم فیلد جدول دوم را با فیلد جدول اول ادغام کنم این عمل انجام می شود ولی بدلیل اینکه یکی از فیلدها Null است حاصل هم Null می شود و من می خواهم حاصل فیلد دارای محتوا باشد.
اگر لطف کنید و راهنمایم کنید ممنون می شوم.

pezhvakco
شنبه 08 آذر 1393, 09:39 صبح
بدلیل اینکه یکی از فیلدها Null است حاصل هم Null می شود و من می خواهم حاصل فیلد دارای محتوا باشد.
همچی درست نفهمیدم پرسش شما چی است .
ولی اگر داده یک ستون Null است، چه طور می خوایین خود به خود دارای داده بشود .

majid216
شنبه 08 آذر 1393, 15:09 عصر
آنها را ادغام می کنم مثلا select name+family as full from table left join table2 on code=code2 حالا فرض بر اینکه name خالی باشد یا اصلا کدی در جدول شماره 2 نداشته باشد در نتیجه مقدار آن null است و هنگام ادغام کردن با اینکه family وجود دارد حاصل null می شود

pezhvakco
شنبه 08 آذر 1393, 16:54 عصر
می تونین با Inner Join تست نمایید .
ساختار دو جدول را نمی دونم ولی بهتر بر این است ستون مورد استفاده برای Join شدن، کلیدی باشد .
چطور میشه ستون Code شما دارای داده نباشد .

mojtabamalaekeh
شنبه 08 آذر 1393, 17:18 عصر
فکر کنم مشکل شما با جمع کردن دو مقداره که یکیشون Null هست و ربطی به JOIN نداره. این خاصیت SQL هست دیگه. میتونید از تابع ISNULL استفاده کنید:

select ISNULL(Name, '') + ' ' + ISNULL(Family, '')
البته اینجوری اگه اسمی خالی باشه یه Space اضافه اول Fullname میاد.
توی کد زیر هم اگه فامیل خالی باشه یه Space اضافه آخرش میاد :لبخند:

SELECT ISNULL(name, '') + (CASE WHEN ISNULL(name, '') = '' THEN '' ELSE ' ' END) + ISNULL(Family, '')