Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 全文搜索 » 全文搜索的类型

 

视图搜索

要对视图或派生表使用全文搜索,必须在要执行全文搜索的基表中的列上构建文本索引。以下语句对示例数据库中的 MarketingInformation 表创建一个其中已有文本索引名称的视图,然后对该视图执行全文搜索。

要对 MarketingInformation 基表创建视图,请执行以下语句:

CREATE VIEW MarketingInfoView AS
SELECT MI.ProductID AS ProdID,
     MI."Description" AS "Desc"
FROM GROUPO.MarketingInformation AS MI
WHERE MI."ID" > 3

利用以下语句,您可以在基础表上用文本索引来查询视图。

SELECT *
FROM MarketingInfoView
WHERE CONTAINS ( "Desc", 'Cap OR Tee*' )

也可执行以下语句,以在基础表上使用文本索引来查询派生表。

SELECT *
FROM (
     SELECT MI.ProductID, MI."Description"
     FROM MarketingInformation AS MI
     WHERE MI."ID" > 4 ) AS dt ( P_ID, "Desc" )
WHERE CONTAINS ( "Desc", 'Base*' )
注意

您想要对其运行全文搜索的列必须包括在视图或派生表的 SELECT 列表中。

在基础性基表上使用文本索引搜索视图有如下限制:

  • 视图不能含有 TOP、FIRST、DISTINCT、GROUP BY、ORDER BY、UNION、INTERSECT 和 EXCEPT 子句或窗口函数。

  • 视图不能包含集合函数。

  • CONTAINS 查询可查询某一视图内的基表,但不能查询另一个视图内的某一视图内的基表。

 另请参见