SQL 服务器 - 包含查询
SQL Server - Contains Query
使用 SQL Server 2014 和以下数据:
ID Address City State
1 55 Main St Dallas TX
2 4 Elm Blvd Cupertino CA
3 66 Walnut Miami FL
4 21 Main Ave Cupertino CA
我正在尝试使用跨多列的包含查询来查找匹配项,但无法找出正确的语法。在这种情况下,我有查询部分:
CONTAINS ((Address, City, State), '"main" or "cupertino")
这 return 行 #1、#2 和 #4。
我也可以试试这个:
CONTAINS ((Address, City, State), '"main" and "cupertino")
这没有 return 任何行。
不过,我想弄清楚的是,我如何 return 使用搜索词 "main" 和 "cupertino" 仅使用包含查询的第 4 行。
基本上,我正在尝试执行以下操作,但使用包含查询:
WHERE (Address LIKE '%main%' OR City LIKE '%main%' OR Zip LIKE '%main%') AND (Address LIKE '%cupertino%' OR City LIKE '%cupertino%' OR Zip LIKE '%cupertino%')
谢谢!
CONTAINS()
的表达式是在每一列上独立计算的(正如您可能已经猜到的那样)。一种解决方案是尝试:
CONTAINS((Address, City, State), '"main"') AND
CONTAINS((Address, City, State), '"cupertino"')
更传统的方法是添加计算列并将其用于索引:
alter table t add acs as (Address + ' ' + City + ' ' + State) persisted;
然后在该列上建立索引。
使用 SQL Server 2014 和以下数据:
ID Address City State
1 55 Main St Dallas TX
2 4 Elm Blvd Cupertino CA
3 66 Walnut Miami FL
4 21 Main Ave Cupertino CA
我正在尝试使用跨多列的包含查询来查找匹配项,但无法找出正确的语法。在这种情况下,我有查询部分:
CONTAINS ((Address, City, State), '"main" or "cupertino")
这 return 行 #1、#2 和 #4。
我也可以试试这个:
CONTAINS ((Address, City, State), '"main" and "cupertino")
这没有 return 任何行。
不过,我想弄清楚的是,我如何 return 使用搜索词 "main" 和 "cupertino" 仅使用包含查询的第 4 行。
基本上,我正在尝试执行以下操作,但使用包含查询:
WHERE (Address LIKE '%main%' OR City LIKE '%main%' OR Zip LIKE '%main%') AND (Address LIKE '%cupertino%' OR City LIKE '%cupertino%' OR Zip LIKE '%cupertino%')
谢谢!
CONTAINS()
的表达式是在每一列上独立计算的(正如您可能已经猜到的那样)。一种解决方案是尝试:
CONTAINS((Address, City, State), '"main"') AND
CONTAINS((Address, City, State), '"cupertino"')
更传统的方法是添加计算列并将其用于索引:
alter table t add acs as (Address + ' ' + City + ' ' + State) persisted;
然后在该列上建立索引。