0
我有一個問題,我需要在SQL中爲單個字段傳遞多個條件。例如,如果我正在尋找所有包含Ruby,PHP或ASP.Net的書名。此外,我只想返回有限數量的行進行分頁。我知道我可以做動態SQL,但我相信可能有更好的方法。任何幫助表示讚賞。多個搜索標準T-SQL中的單個字段
我有一個問題,我需要在SQL中爲單個字段傳遞多個條件。例如,如果我正在尋找所有包含Ruby,PHP或ASP.Net的書名。此外,我只想返回有限數量的行進行分頁。我知道我可以做動態SQL,但我相信可能有更好的方法。任何幫助表示讚賞。多個搜索標準T-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
我能不能使用與我想要的結果的圖,並加入標準表到還是會很慢? – Wade73
@ Wade73您無法制作包含結果的視圖。除非你在創建視圖之前知道所有的標準,否則這將違背這項任務的目的。 –
那麼所有的搜索表都是我想要搜索的字段,爲什麼我不能在視圖(或表)中搜索相同的字段,而不是將其插入臨時表中? – Wade73