为什么CONTAINS方法不适用于REPLACE

问题描述 投票:0回答:2

我正在使用SQL Server 2014,并且正在尝试使用REPLACE方法中的CONTAINS方法执行查询,如下所示:

SELECT *
FROM A
WHERE CONTAINS(Name, REPLACE('abcd', 'a', 'b'))

但查询返回错误

'REPLACE'附近的语法不正确。

如何正确执行?

sql sql-server contains
2个回答
0
投票

尝试使用cte

with cte as
(
  select 
    *
  from A
  where REPLACE('abcd', 'a', 'b') as col
)

select 
  *
from cte
where contains(col, name)

0
投票

您可以这样写:

declare @param nvarchar(100)='abcd';

    set @param=  REPLACE(@param,'a','b');

    SELECT *
    FROM PersonAddress
    WHERE CONTAINS(FullName, @param)

但是首先,您需要这样做

full-text search index

© www.soinside.com 2019 - 2024. All rights reserved.