SQL 服务器全文搜索 - 获取总字段值
SQL Server Full-Text search - get total field value
假设我有以下 table "Addresses
":
+----+-------------+---------------+------------------+
| ID | CompanyName | Street | City |
+----+-------------+---------------+------------------+
| 1 | Salvador | Hollywood 123 | Paradise City |
| 2 | Zer0 | Avenue 34 | Opportunity City |
+----+-------------+---------------+------------------+
如果我进行如下全文搜索:
SELECT * FROM Addresses WHERE CONTAINS(*, 'Salv')
有可能回来吗
- 包含建立值的列的名称(在本例中为 "CompanyName")
- 列的完整值,其中包含已建立的值(在本例中为 "Salvador"
我可以这样建议:
SELECT
*,
CASE WHEN CONTAINS(CompanyName, 'Salv') THEN 'CompanyName'
WHEN CONTAINS(Street, 'Salv') THEN 'Street'
WHEN CONTAINS(City, 'Salv') THEN 'City'
END As ColumnName,
CASE WHEN CONTAINS(CompanyName, 'Salv') THEN CompanyName
WHEN CONTAINS(Street, 'Salv') THEN Street
WHEN CONTAINS(City, 'Salv') THEN City
END As FullText
FROM Addresses
WHERE CONTAINS(*, 'Salv')
假设我有以下 table "Addresses
":
+----+-------------+---------------+------------------+
| ID | CompanyName | Street | City |
+----+-------------+---------------+------------------+
| 1 | Salvador | Hollywood 123 | Paradise City |
| 2 | Zer0 | Avenue 34 | Opportunity City |
+----+-------------+---------------+------------------+
如果我进行如下全文搜索:
SELECT * FROM Addresses WHERE CONTAINS(*, 'Salv')
有可能回来吗
- 包含建立值的列的名称(在本例中为 "CompanyName")
- 列的完整值,其中包含已建立的值(在本例中为 "Salvador"
我可以这样建议:
SELECT
*,
CASE WHEN CONTAINS(CompanyName, 'Salv') THEN 'CompanyName'
WHEN CONTAINS(Street, 'Salv') THEN 'Street'
WHEN CONTAINS(City, 'Salv') THEN 'City'
END As ColumnName,
CASE WHEN CONTAINS(CompanyName, 'Salv') THEN CompanyName
WHEN CONTAINS(Street, 'Salv') THEN Street
WHEN CONTAINS(City, 'Salv') THEN City
END As FullText
FROM Addresses
WHERE CONTAINS(*, 'Salv')