[英]Multiple Search Criteria Single Field in T-SQL
我有一個問題,我需要為SQL中的單個字段傳遞多個條件。 例如,如果我正在尋找包含Ruby,PHP或ASP.Net的所有書籍。 另外,我只想返回有限數量的行進行分頁。 我知道我可以做動態sql,但我相信可能有更好的方法。 任何幫助表示贊賞。
如果你把搜索詞放在一個表中,那就不那么難了。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.