PDA

View Full Version : نوشتن یک sp که در اون از تابع like استفاده شده باشه



csharpprogramer88
پنج شنبه 18 آذر 1389, 16:18 عصر
سلام

من در یک sp محبورم از تابع like بصورت زیر استفاده کنم ولی نمیدونم چرا خروجی نداره



ALTER procedure [dbo].[sp_ostad_lastname]
@lname nvarchar
As
Begin
Select
[ID],
[Name],
[Lname],
[pedar],
[BirthDay],
[taahol],
[Tedadfarzand],
[Mobile],
[tel_home],
[City],
[Detailsaddress],
[vazeeat_home],
[vazeeat_mashin],
[maharat]
From ostad
-- where Lname like @lname
where [Lname] like '%+@lname+%'


دوستان یک راهنمایی بفرمایید که چطوری باید این پارامتر را بنویسم
اگر خط آخر را به شکل زیر بنویسم خروجی داره ولی برام پارامتر مهمه


where [Lname] like '%م%'

با تشکر

shima2006
پنج شنبه 18 آذر 1389, 16:40 عصر
سلام
اگر اینطوری بنویسی جواب نمیگیری؟!


WHERE (Lname = @Lname)

csharpprogramer88
پنج شنبه 18 آذر 1389, 19:07 عصر
سلام
اگر اینطوری بنویسی جواب نمیگیری؟!


WHERE (Lname = @Lname)



نه حتما باید از like استفاده بشه


دوستان لطف کنن و یک نمونه از sp و دستور like بگذارند
با تشکر

chasbonakam
پنج شنبه 18 آذر 1389, 19:42 عصر
این جوری بنویس

where lname like '%' + @lname + '%'

reza_edu
پنج شنبه 18 آذر 1389, 20:39 عصر
سلام دوست گرامی شرمنده من یه قسمت های از سوال شما رو نفهمیدم (خوب سوادم پائین) اما یه چیزایم میدونم امل بگم که فکر کنم به جوابت رسیده باشی با جوابی که جناب chasbonakam (http://barnamenevis.org/member.php?163155-chasbonakam) دادن اما من که تو زبان ویبی از دستورات اسکیوال برای کوری گرفتن استفاده میکنم از این دستور استفاده میکنم جواب هم میده
whereنام ستون مورد نظر like '%خود کلمه مورد نظر%' بدون هیچ اضافاتی البته برای استفاده از % باید بستگی به نیازت استفاده کنی چون اگه سمت راست فقط بزاری با هر طولی نشون میده اگه سمت چپ بزاری با یه خاصیت دیگه (البته الان دقیق یادم نیست چون یه فایل PDF دارم که مهشر هروقت بخوام از دستوری استفاده کنم اول به اون یه نگاه میندازم بعد مینویسم البته کامل کامل نیست ولی برای کارای من جواب میده.
آقا این SP که گفتی یعنی چه:لبخند: کم سوادیم دیگه حال سرچم ندارم:لبخند:.

Touska
جمعه 19 آذر 1389, 10:42 صبح
Where [LName] Like ('%'+RTrim(@Lname)+'%')

اینو امتحان نمایید.