PDA

View Full Version : استفاده از توابع



Mooojy
چهارشنبه 12 اسفند 1388, 19:07 عصر
سلام
من 3 تا فیلد دارم و می خوام تو فیلد چهارمم جمع اون سه فیلد رو بزارم
چطوری می تونم کوییریشو تو select یک دستور بنویسم
نکته: اون سه فیلدم null پذیرن

به نظرم باید از تابع isnull استفاده کنم و نظر شما برام خیلی اهمیت داره

محمد سلیم آبادی
چهارشنبه 12 اسفند 1388, 19:23 عصر
SELECT Col1, Col2, Col3, Col4 = COALESCE(Col1, 0) + COALESCE(Col2, 0) + COALESCE(Col3, 0) FROM table_name WHERE 2 * 2 = 4--d

Mooojy
چهارشنبه 12 اسفند 1388, 19:35 عصر
SELECT Col1, Col2, Col3, Col4 = COALESCE(Col1, 0) + COALESCE(Col2, 0) + COALESCE(Col3, 0) FROM table_name WHERE 2 * 2 = 4--d


ممنون از شما
فقط یه مقدار در رابطه با where که گذاشتید توضیح میدید

محمد سلیم آبادی
چهارشنبه 12 اسفند 1388, 19:40 عصر
ممنون از شما
فقط یه مقدار در رابطه با where که گذاشتید توضیح میدید

نتیجه ی شرطی که در WHERE وجود داره برای تمام سطرهای جدول برابر با True خواهد بود و همه ی سطرهای جدول انتخاب میشن.

اونو برای شوخی گذاشتم تا کمی حال و هوا عوض بشه
به قول معروف " دو دو تا چهار تا" :لبخندساده:

Mooojy
چهارشنبه 12 اسفند 1388, 19:44 عصر
دمت گرم خیلی حال دادی
آقا بی زحمت این سوال آسونمو هم پاسخ میدی!
نوع دیتا money چند کاراکتر(length) می پذیرد؟ پش فرض خودش مثلی اینکه رو 8
چجوری میشه تعداد کارکترشو عوض کرد؟

محمد سلیم آبادی
چهارشنبه 12 اسفند 1388, 19:49 عصر
دمت گرم خیلی حال دادی
آقا بی زحمت این سوال آسونمو هم پاسخ میدی!
نوع دیتا money چند کاراکتر(length) می پذیرد؟ پش فرض خودش مثلی اینکه رو 8
چجوری میشه تعداد کارکترشو عوض کرد؟

دو نوع دیتا تایپ money وجود داره: money و smallmoney که نوع اول 8 بایت فضا اشغال می کنه. و دومی 4 بایت. رنجشونم از این قراره:


money
-922,337,203,685,477.5808 to 922,337,203,685,477.5807

smallmoney
- 214,748.3648 to 214,748.3647

Mooojy
چهارشنبه 12 اسفند 1388, 19:52 عصر
دو نوع دیتا تایپ money وجود داره: money و smallmoney که نوع اول 8 بایت فضا اشغال می کنه. و دومی 4 بایت. رنجشونم از این قراره:


money
-922,337,203,685,477.5808 to 922,337,203,685,477.5807

smallmoney
- 214,748.3648 to 214,748.3647

من رو money گذاشتم اما وقتی عددم از 8 حرف بیشتر میشه ارور لبریز شدن میده؟!!

محمد سلیم آبادی
چهارشنبه 12 اسفند 1388, 19:57 عصر
داخل SQL Server که این اتفاق نمی افته باید ببینید داخل کدهای برنامه چه اتفاقی می افته که باعث میشه اررو صادر بشه.

مثلا این کد رو داخل SQL Server اجرا کنید هیچ پیغام خطایی صادر نمیشه:
DECLARE @m MONEY
SET @m = $123456789000
SELECT @m

Open-Source
پنج شنبه 13 اسفند 1388, 12:00 عصر
برای ریختن پول نوع money بهتره یا float (آخه یه جا خوندم که float بهتره ولی به نظر خودم اینطور نیست).