PDA

View Full Version : چطوری این select و بنویسم؟



az.heidarzadeh
چهارشنبه 27 مهر 1390, 11:52 صبح
سلام
من میخوام یه کار ساده انجام بدم ببینید توی جدول tb_person سه تا فیلد دارم nameFamily,jensiat,companyname که موقع پر کردن سه حالت داریم یا همش پر میشه یا نام و جنسیت یا فقط اسم شرکت تا اینجاش که خیلی ساده است درسته :چشمک:
حالا موقع select میخوام دستور select ام و طوری بنویسم که به جای این سه تا یک فیلد داشته باشم به اسم customer و خالی ها رو هم نشونم نده و توی جنسیت هم بجای 1 بزنه آقا و بجای 0 بزنه خانم یعنی اینطوری...

namefamily jensiat companyname customer
------------- ----------------- -------- --------------

amin mohammadi / 1 / null /aqaye amin mohamadi
null / null / sherkate rahavard / sherkate rahavard
sara rezaei / 0 / sherkate sadaf / khanom sara rezaei - sherkate sadaf


لطفا نگید نمیشه من با case اومدم امتحان کنم نشد من حتما این و میخوام امیدوارم اساتید محترم روشی براش داشته باشند... :لبخندساده:

یوسف زالی
چهارشنبه 27 مهر 1390, 13:33 عصر
سلام.
select case jensiat when 0 then 'khanum ' + namefamily + '-' when 1 then 'aghaye ' + namefamily + '-' else '' end + isnull(companyname, '') from TBL

موفق باشی.

az.heidarzadeh
چهارشنبه 27 مهر 1390, 15:39 عصر
سلام.
select case jensiat when 0 then 'khanum ' + namefamily + '-' when 1 then 'aghaye ' + namefamily + '-' else '' end + isnull(companyname, '') from TBL

موفق باشی.
خیلی ممنون از جواب تون اما این وقتی فقط نام داشته باشم یه dash اضافه میزنه و هم اینکه حتما باید مقدار خالی null باشه چون امکان داره که null نباشه و '' باشه، این کد و همکارم بهم داد که کاملا درسته میزارم واسه دوستانی که مشکل منو دارن :لبخندساده:


SELECT
CASE vcNameFamily
WHEN '' THEN vcCompanyName
ELSE (
CASE vcCompanyName
WHEN '' THEN
(SELECT CASE bitSex
WHEN 1 THEN 'جناب آقای ' + vcNameFamily
WHEN 0 THEN 'سرکار خانم ' + vcNameFamily END)
ELSE (
SELECT CASE bitSex
WHEN 1 THEN 'جناب آقای ' + vcNameFamily
WHEN 0 THEN 'سرکار خانم ' + vcNameFamily END) + ' - ' + vcCompanyName END)
END
FROM tb_person

یوسف زالی
چهارشنبه 27 مهر 1390, 16:20 عصر
دوست عزیز شما دقیقا صورت مساله تون همین بود.
به مثالهاتون دقت کنید.
در خصوص - موافقم.
کمی دستکاری شما رو به هدفتون می رسوند.