2015-08-20 4 views
0

мне нужна помощь здесь .. я пытаюсь реализовать результат поискаПоиск на основе очереди приоритета

условия

1 # он должен получать записи, равно, что ключевое слово пользователь вводит в текстовое поле (@SEARCH)

2 # Наряду с первым условием Он также выборки совпавшие записи, который вводится в текстовое поле (@SEARCH)

3 # что ключевое слово искали, которое должно показать, 1-й и другие матчи будут шоу после этого (что я меня ans priority queue)

4 # Он должен проверить параметр @loc paramater и получить это ключевое слово.

@SEARCH NVARCHAR(100) = NULL, 
@loc NVARCHAR(100) = NULL 
as 
select * 
from tblBusinessCategory as b 
    inner join tblUser as u on b.BusinessID=u.BusinessCategoryId 
    inner join tblAddress as a on u.AddressId=a.AddressID 
where b.BusinessName = @SEARCH and 
a.City = @loc 
     OR a.State = @loc 
     and b.BusinessName LIKE '%' + @SEARCH + '%' 
+0

Можете ли вы показать некоторые данные, чтобы объяснить пример? – christiandev

+0

u означает записи базы данных (таблицы)? –

+0

ему не обязательно должны быть данные или таблицы, которые у вас есть, а пример того, чего вы пытаетесь достичь. – christiandev

ответ

0

Вы должны заказать их на основе этого условия (b.BusinessName = @SEARCH):

select * 
from tblBusinessCategory as b 
    inner join tblUser as u on b.BusinessID=u.BusinessCategoryId 
    inner join tblAddress as a on u.AddressId=a.AddressID 
where a.City = @loc OR a.State = @loc 
     OR b.BusinessName LIKE '%' + @SEARCH + '%' 
Order By case when b.BusinessName = @SEARCH then 0 else 1 end 

Я не уверен, хотите ли вы OR или AND в вашем где предложение. Если вы хотите смешивать OR и AND, вы должны использовать скобки: where (X = 0 or Y = 5) And Z = 20

Смежные вопросы