Um eine Volltextsuche auf eine Ansicht oder eine abgeleitete Tabelle anzuwenden, müssen Sie einen Textindex für die Spalten in der Basistabelle erstellen, in denen Sie die Volltextsuche ausführen möchten. Die folgenden Anweisungen erstellen eine Ansicht für die Tabelle "MarketingInformation" in der Beispieldatenbank, die bereits einen Textindexnamen besitzt, und führen dann eine Volltextsuche für diese Ansicht durch.
Um eine Ansicht für die Basistabelle "MarketingInformation" zu erstellen, führen Sie die folgende Anweisung aus:
CREATE VIEW MarketingInfoView AS SELECT MI.ProductID AS ProdID, MI."Description" AS "Desc" FROM GROUPO.MarketingInformation AS MI WHERE MI."ID" > 3 |
Mit der folgenden Anweisung können Sie die Ansicht abfragen und dabei den Textindex für die Basistabelle verwenden.
SELECT * FROM MarketingInfoView WHERE CONTAINS ( "Desc", 'Cap OR Tee*' ) |
Sie können auch die folgende Anweisung ausführen, um eine abgeleitete Tabelle mit dem Textindex für die Basistabelle abzufragen.
SELECT * FROM ( SELECT MI.ProductID, MI."Description" FROM MarketingInformation AS MI WHERE MI."ID" > 4 ) AS dt ( P_ID, "Desc" ) WHERE CONTAINS ( "Desc", 'Base*' ) |
Die Spalten, für die Sie die Volltextsuche ausführen möchten, müssen in die SELECT-Liste der Ansicht bzw. der abgeleiteten Tabelle einbezogen werden.
Die Suche in einer Ansicht mithilfe eines Textindexes für die Basistabelle ist folgenden Einschränkungen unterworfen:
Die Ansicht darf weder die Klauseln TOP, FIRST, DISTINCT, GROUP BY, ORDER BY, UNION, INTERSECT, EXCEPT noch eine Fensterfunktion enthalten.
Die Ansicht darf keine Aggregatfunktionen enthalten.
Eine CONTAINS-Abfrage kann sich auf eine Basistabelle in einer Ansicht beziehen, aber nicht auf eine Basistabelle in einer Ansicht in einer anderen Ansicht.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |