PDA

View Full Version : نوشتن يك دستور select ساده



ali_ahr7
دوشنبه 03 اسفند 1388, 00:07 صبح
سلام به دوستان عزيز.
يه سوال ساده داشتم كه اونو يا يه مثال مطرح ميكنم.



select * from tbmain where name ='ali' and lname='jamali

ميخواستم بدونم دستور بالارو چطور بنويسم كه مثلا اگز شرط اول (name='ali') برقرار نبود بازم نتايج كوري نمايش داده بشه.
به عبارت ديگه حتي كسان ديگه اي هم كه lname اونها مساوي جمالي هست رو نمايش بده.با تشكر فراوان

hamed.rezaei
دوشنبه 03 اسفند 1388, 00:37 صبح
سلام;
به جای AND از OR استفاده کنین

ali_ahr7
دوشنبه 03 اسفند 1388, 00:53 صبح
دوست عزيز ممنون از پاسختون ولي يه مشكلي وجود داره.
ببينيد اگر كاربر name رو خالي (null) بذاره مسئله حل شده ولي اگر كاربر يك نام رو بذاره تمام name,lname ها رديف ميشن.مثلا:
محسن جوانمردي
علي سالارنيا
عليرضا هاديان
علي رحيمي

كاربر اطلاعات رو بصورت روبرو وارد ميكنه: name=علي lname=سالارنيا

بديهيه كه نتيجه كوئري بصورت زير خواهد بود.
علي سالارنيا
علي رحيمي
در حالي كه من اولي مد نظرم هست و نه دومي.بازم متشكرم از توجهتون.

h.frend
دوشنبه 03 اسفند 1388, 02:34 صبح
من سئوال شما رو این طوری متوجه شدم که موخاید تمام کسایی که فامیلی اونا برابر جمالی هستش لیست شن.
می تونی از کد زیر استفاده کنی:
select * from tbmain where lname=jamali

ali_ahr7
دوشنبه 03 اسفند 1388, 10:29 صبح
بلي ولي مسئله اينجاست كه ماربر بايد در صورت نياز بتونه اسم كوچك رو هم وارد كنه تا كوئري بر حسب نام كوچك سورت بشه.

misoft.ir
دوشنبه 03 اسفند 1388, 10:31 صبح
سلام
من در این مورد کار نکردم اما یک وقتی یک کدی دیدم که با گذاشتن شرط if و Exist مشکلش رو حل کرده بود
در این مورد جستجو کن امیدوارم مشکلت حل بشه.
یه مقاله فارسی هم در این لینک هست
http://www.barnamenevis.org/forum/showthread.php?t=193574&highlight=sql+logic

h.frend
دوشنبه 03 اسفند 1388, 10:41 صبح
اگر مشکل شما سورت باشه این مشکل شما رو حل کنه.

select * from table_1 where lname='jamali'
order by lname,name

shahab2025
دوشنبه 03 اسفند 1388, 13:04 عصر
سلام
من با يكي از بانكهايي كه دم دستم بود اينو واست نوشتم - جواب داد - انشالله ازش ايده بگيري و مشكلت را حل كني


DECLARE @A NVARCHAR(20),@B NVARCHAR(20)
SET @A=''
SET @B=''

IF @A =''
SELECT*FROM HRS_PERSONNEL
WHERE LASTNAME=@B
ELSE
SELECT*FROM HRS_PERSONNEL
WHERE FIRSTNAME=@A AND LASTNAME=@B


كه دو متغير را كاربر پر ميكنه