UNIONステートメントを追加していますが、UNIONのIFステートメントを追加する必要がありますが、「IF '、Expecting') '、EXCEPT、またはSELECT」エラー。sql server UNIONの前にIFステートメントを使用
プロセッサの効率を向上させるために、可変文字列に特殊文字がある場合にのみUNIONを呼び出すことをお勧めします。ここに私の選択した声明があります。どんな助けもありがとうございます。ありがとう。
set @DelimitedKeyWord = (select replace(@KeyWord, '-', ''))
set @DelimiterExists = (select CHARINDEX('-', @KeyWord))
select distinct top (@MaxHits)
results.MYID as ItemId
, results.Rank0 as [RANK]
from (
select
[MYID]
, [RANK] as Rank0
from [rcl].[MyTable] rm
inner join CONTAINSTABLE([MyTable], *, @KeyWord) as CNT
on CNT.[Key] = rm.RecallID
if (@DelimiterExists > 0)
begin
union
select
[MYID]
, [RANK] as Rank0
from [rcl].[MyTable] rm
inner join CONTAINSTABLE([MyTable], *, @DelimitedKeyWord) as DCNT
on DCNT.[Key] = rm.RecallID
end
) as results
代わりにWHERE句に条件を入力します。 UNION ALLを検討してください。 – jarlh
'IF'の代わりに、' WHERE @DelimiterExists> 0'を2番目の 'UNION'クエリに追加してください。 –
これを達成するには、ユニオンコマンドの前に元のselectステートメントをコピーして、何も変更せずに –