PDA

View Full Version : دستوری برای کپی و ترکیب کردن داده های چند فیلد در یک فیلد



viper2009
یک شنبه 18 اردیبهشت 1390, 03:08 صبح
سلام
سه فیلد از نوع عددی دارم که در آن روز و ماه و سال را بصورت 1-1-1300 در آنها ذخیره کرده ام
جدیداً می خواهم یک فیلد به جدول اضافه کنم تا ترکیب روز و ماه و سال را بصورت 01-01-1300 را در آن اضافه کنم
دستی می شود این کار را انجام داد ولی متاسفانه جدولم بالای 1000 تا رکورد داره و مشکل وقت دارم
از دوستان اگر بتوانند راهنمایی ام کنند ممنون می شوم

محمد سلیم آبادی
یک شنبه 18 اردیبهشت 1390, 05:45 صبح
سلام،
قبل از اجرا روی جدول اصلی امتحانش کنید، البته ذکر نکردن میخوان این ترکیب بازم عدد باشه یا نه رشته...
ستونهای year و Month و day همون سال و ماه و روزی هستن که بهشون اشاره کردی.

UPDATE TABLE Sample
SET New_Column = RIGHT(REPLICATE('0', 3) + CAST(Year AS VARCHAR(10)), 4) + '-'
RIGHT('0' + CAST(Month AS VARCHAR(10)), 2) + '-'
RIGHT('0' + CAST(Day AS VARCHAR(10)), 2)
WHERE New_Column IS NULL;

viper2009
یک شنبه 18 اردیبهشت 1390, 15:08 عصر
عجب کد شیرینی
آره یادم رفته بود که بگم همشون از نوع عددی هستند
پس کاراکتر - معنایی ندارد
من هم آنها را حذف کردم و جواب گرفتم
فقط یک سوال دستور CAST به چه معناست؟

محمد سلیم آبادی
یک شنبه 18 اردیبهشت 1390, 17:58 عصر
من میخواستم بگم که قبل از اجرا روی جدول اصلی روی یک جدول آزمایشی اینکار رو انجام بدین که یک جمله اشتباه نوشتم.
من ستون ترکیبی رو رشته ای در نظر گرفته بودم. Cast ماله تغییر نوعی به نوع دیگه هست.

UPDATE TABLE Sample
SET New_Column = CAST(Year AS VARCHAR(10)) +
RIGHT('0' + CAST(Month AS VARCHAR(10)), 2) +
RIGHT('0' + CAST(Day AS VARCHAR(10)), 2) * 1
WHERE New_Column IS NULL;