1

我的查询如下

select * from Test where contains (Description,'NEAR((method,system),3')

它在 SQL Server 2008 中显示错误。

Syntax error near '(' in the full-text search condition 'NEAR((method,system),3'

它有什么问题?

4

2 回答 2

0

如果您想以这种方式使用 NEAR 运算符,则应升级到 SQL Server 2012。此语法在以前的版本中不可用,因为它是 2012 版本的新增功能。

如果你比较 MSDN 上2008 版2012 版的文档,你会发现 2008 不支持语法。

2012 年的语法:

<custom_proximity_term> ::= 
  NEAR ( 
     {
        { <simple_term> | <prefix_term> } [ ,…n ]
     |
        ( { <simple_term> | <prefix_term> } [ ,…n ] ) 
      [, <maximum_distance> [, <match_order> ] ]
     }
       ) 

      <maximum_distance> ::= { integer | MAX }
      <match_order> ::= { TRUE | FALSE } 

2008 年的语法:

<proximity_term> ::= 
     { <simple_term> | <prefix_term> } 
     { { NEAR | ~ }
     { <simple_term> | <prefix_term> } 
     } [ ...n ] 
于 2013-03-06T08:18:37.687 回答
0

您的查询格式不正确。用这个:

select * from Test where contains (Description,'NEAR((method,system),3)')
于 2013-01-05T06:11:48.397 回答