我的查询如下
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'
它有什么问题?
我的查询如下
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'
它有什么问题?
如果您想以这种方式使用 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 ]
您的查询格式不正确。用这个:
select * from Test where contains (Description,'NEAR((method,system),3)')