【问题标题】:Why CONTAINS method doesn't work with REPLACE为什么 CONTAINS 方法不适用于 REPLACE
【发布时间】:2020-09-25 10:28:06
【问题描述】:

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

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

但是查询返回错误

“REPLACE”附近的语法不正确。

我怎样才能正确地做到这一点?

【问题讨论】:

  • “abcd”是列还是静态值?
  • 双引号字符不是字符串分隔符——这是第一个问题。但是您的查询几乎没有逻辑意义,因此您的示例可能与您的实际问题有很大不同。

标签: sql sql-server contains


【解决方案1】:

你可以这样写:

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

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

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

但首先,你需要这样做

【讨论】:

    【解决方案2】:

    试试cte

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

    【讨论】:

      猜你喜欢
      • 2016-05-14
      • 1970-01-01
      • 2013-12-13
      • 2016-10-02
      • 2022-01-24
      相关资源
      最近更新 更多