csharpcollegian
Member
سلام وقت به خیر
دوستان من برای پیاده سازی یک جستجوی ترکیبی روی یکی از جداول دیتابیسم از Stored Procedure زیر استفاده کردم :
این Stored Procedure بر اساس متغیرهایی که براش تعریف کردم (مثل نام کارمند، کد پرسنلی کارمند و...) جدولم رو جستجو می کنه و نتیجه مناسب رو برمی گردونه
دلیل اینکه از ISNULL استفاده کردم اینه که بتونم جستجو رو به صورت ترکیبی (چند کلید) هم پیاده سازی کنم
Stored Procedure به خوبی کار می کنه و فقط کافیه متغیر یا متغیرهایی که می خوام بر اساس اونا جستجو انجام بشه رو براش ارسال کنم تا نتیجه رو برگردونه
اما مشکل اینجاست که زمانی که مقدار یکی از پارامتر ها در جدول مربوطش NULL باشه هیچ نتیجه ای رو بر نمیگردونه !
مثلا وقتی مقدار EndDate (تاریخ پایان قرارداد کارمند) در جدول کارمند NULL باشه کد بالا کار نمی کنه !
میخواستم بدونم از چه تکنیک یا تابعی باید استفاده کنم تا در این حالت خاص هم جواب بده ؟
خیلی ممنون
دوستان من برای پیاده سازی یک جستجوی ترکیبی روی یکی از جداول دیتابیسم از Stored Procedure زیر استفاده کردم :
PHP:
CREATE PROCEDURE procPersonnelSearch
@ID int = Null,
@Name nvarchar(50) = Null,
@StartDate datetime = Null,
@EndDate datetime = Null,
AS
BEGIN
Select * From tblPersonnel
Where ID = ISNULL(@ID, ID)
AND Name = ISNULL(@Name, Name)
AND StartDate = ISNULL(@StartDate, StartDate)
And EndDate = ISNULL(@EndDate, EndDate)
END
GO
دلیل اینکه از ISNULL استفاده کردم اینه که بتونم جستجو رو به صورت ترکیبی (چند کلید) هم پیاده سازی کنم
Stored Procedure به خوبی کار می کنه و فقط کافیه متغیر یا متغیرهایی که می خوام بر اساس اونا جستجو انجام بشه رو براش ارسال کنم تا نتیجه رو برگردونه
اما مشکل اینجاست که زمانی که مقدار یکی از پارامتر ها در جدول مربوطش NULL باشه هیچ نتیجه ای رو بر نمیگردونه !
مثلا وقتی مقدار EndDate (تاریخ پایان قرارداد کارمند) در جدول کارمند NULL باشه کد بالا کار نمی کنه !
میخواستم بدونم از چه تکنیک یا تابعی باید استفاده کنم تا در این حالت خاص هم جواب بده ؟
خیلی ممنون