I have a stored procedure that uses the LIKE
operator to search for a truck location among some other parameters
@location nchar(20),
@time time,
@date date
AS
select
DonationsTruck.VechileId, Phone, Location, [Date], [Time]
from
Vechile, DonationsTruck
where
Vechile.VechileId = DonationsTruck.VechileId
and (((Location like '%'+@location+'%') or (Location like '%'+@location) or (Location like @location+'%') ) or [Date]=@date or [Time] = @time)
I null the other parameters and search by location only but it always returns no results even when I used the full name of the location
EG : COMPARE TO VILLAGE NAME
Your datatype for
@location nchar(20)
should be@location nvarchar(20)
, since nChar has a fixed length (filled with Spaces).If Location is nchar too you will have to convert it:
To enable nullable parameters with and
AND
condition just use IsNull or Coalesce for comparison, which is not needed in your example usingOR
.e.g. if you would like to compare for Location AND Date and Time.
I was working on same. Check below statement. Worked for me!!