Несколько критериев поиска, одно поле в T-SQL - PullRequest
0 голосов
/ 16 сентября 2011

У меня проблема с передачей нескольких критериев для одного поля в SQL.Например, если я искал все названия книг, которые содержали Ruby, PHP или ASP.Net.Кроме того, я хочу вернуть ограниченное количество строк для нумерации страниц.Я знаю, что мог бы сделать динамический sql, но я уверен, что, возможно, есть лучший способ.Любая помощь приветствуется.

1 Ответ

2 голосов
/ 16 сентября 2011

Если вы поместите свои поисковые слова в таблицу, это не так сложно.

declare @criteria table(text1 varchar(20)) 
declare @searchtable table(longertext varchar(2000)) 

--lines wanted  
declare @linefrom int
declare @lineto int 

set @linefrom = 1
set @lineto = 2

insert @criteria values('asp.') 
insert @criteria values('ruby') 

insert @searchtable values('bla bla ruby') 
insert @searchtable values('bla asp. bla') 
insert @searchtable values('ruby asp. bla') 

;with a as ( 
select s.longertext, rn = row_number() over(order by longertext) from @searchtable s join @criteria c 
on s.longertext like '%'+ c.text1+'%' 
group by s.longertext 
) 
select longertext from a 
where rn between @linefrom and @lineto

Результат:

bla asp. bla
bla bla ruby
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...