sql >> データベース >  >> RDS >> Sqlserver

複数のテーブル、列にわたるSQLServer2008での全文検索の使用

    FREETEXTTABLEを使用すると、結合された各テーブルの結果のマージされたランクを計算するためのアルゴリズムを設計する必要があります。以下の例は、結果をブックテーブルからのヒットに偏らせています。

    SELECT b.Name, a.Name, bkt.[Rank] + akt.[Rank]/2 AS [Rank]
    FROM Book b
    INNER JOIN Author a ON b.AuthorID = a.AuthorID
    INNER JOIN FREETEXTTABLE(Book, Name, @criteria) bkt ON b.ContentID = bkt.[Key] 
    LEFT JOIN FREETEXTTABLE(Author, Name, @criteria) akt ON a.AuthorID = akt.[Key]
    ORDER BY [Rank] DESC
    

    この例ではスキーマを簡略化したことに注意してください。



    1. 公式のMicrosoftAccessTechブログがオンラインになりました!

    2. mysqlのプリペアドステートメントを使用する方が、一般的なエスケープ関数を使用するよりも安全なのはなぜですか?

    3. C#はoracleストアド関数を呼び出します

    4. PostgreSQL配列に値が含まれているかどうかを確認する方法