View Full Version : تبدیل مقدار صفر به null
Galawij
پنج شنبه 22 اردیبهشت 1390, 13:11 عصر
سلام
فیلدی دارم که تو یکی ازجداولم کلید خارجی است که می تواند مقدار null نیز دریافت کند. می خوام هنگام فراخوانی یک روال مقدار صفر را به عنوان پارامتر پاس بدم ولی توی جدول باید null نگهداری بشه.خلاصه بگم
تابعی برای تبدیل صفر به null با پارامتر ورودی روال
مرسی.
behrouzlo
پنج شنبه 22 اردیبهشت 1390, 15:51 عصر
فکر کنم تابعی برای تبدیل صفر به Null وجود نداشته باشد ولی برعکس آن با تابع isnull امکانپذیر است . می توانید برای اینکار از ساختار Case When استفاده کنید
محمد سلیم آبادی
پنج شنبه 22 اردیبهشت 1390, 19:16 عصر
سلام،
INSERT INTO TableTarget (...)
SELECT NULLIF(your_field, 0), ...;
تابع nullif برای اینکار استفاده میشه. وقتی دو پارامتر ورودی این تابع با هم یکی باشن null به عنوان خروجی در نظر گرفته خواهد شد.
حمیدرضاصادقیان
پنج شنبه 22 اردیبهشت 1390, 19:20 عصر
سلام.
یگ راه ساده اش این هست که شما در داخل یک if چک کنید که اگر مقدار پارامتر مورد نظر شما 0 بود پارامترهای insert رو مشخص کنید و به اون فیلد اصلا مقدار ندهید و چون میتونه null قبول کنه مقدارش خود به خود null خواهد شد.
همچنین شما میتوانید در دستور Insert به این شکل استفاده میکنید.
if @parameter1=0
Insert into table1
values(1,1,Null)
Else
INsert into Table1
Values(1,1,'Test')
محمد سلیم آبادی
پنج شنبه 22 اردیبهشت 1390, 20:39 عصر
اگر هم علاقه دارین از سینتکس INSERT VALUES درج صورت بگیره از روشی که در پست دوم اشاره شد استفاده کنید یعنی:
SET @column = CASE @column WHEN 0 THEN NULL ELSE @column END
INSERT INTO TableTarget VALUES(... , @column, ...);
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.