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

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfrage und Änderung von Daten » Volltextsuche » Arten der Volltextsuche

 

Ansichtensuche

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*' )
Hinweis

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.

 Siehe auch