0
SQLの1つのフィールドに複数の条件を渡す必要があるという問題があります。たとえば、Ruby、PHP、ASP.Netを含むすべての書籍タイトルを探していたとします。また、私はページングのために限られた数の行を返すだけです。私は動的SQLを行うことができます知っているが、私はおそらくより良い方法があると確信しています。どんな助けもありがとうございます。複数の検索条件T-SQLの単一フィールド
SQLの1つのフィールドに複数の条件を渡す必要があるという問題があります。たとえば、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