please dont rip this site

CONTAINS (T-SQL)

Is a predicate used to search columns containing character-based data types for precise or “fuzzy” (less precise) matches to single words and phrases, the proximity of words within a certain distance of one another, or weighted matches. CONTAINS can search for:

Syntax

CONTAINS
    (    {column | *}, '<contains_search_condition>'
    )

<contains_search_condition> ::=
        
{
        | <generation_term>
        | <prefix_term>
        | <proximity_term>
        | <simple_term>
        | <weighted_term>
        }
        | { (<contains_search_condition>)
        {AND | AND NOT | OR} <contains_search_condition> [...n]
         }

<weighted_term> ::=
    ISABOUT
        (    {    {
                    <generation_term>
                    | <prefix_term>
                    | <proximity_term>
                    | <simple_term>
                }
                [WEIGHT (weight_value)]
            } [,...n]
        )

<generation_term> ::=
    FORMSOF (INFLECTIONAL, <simple_term> [,...n] )

<prefix term> ::=
    { "word * " | "phrase * " }

<proximity_term> ::=
    {<simple_term> | <prefix_term>}
    {    {NEAR | ~} {<simple_term> | <prefix_term>} } [...n]

<simple_term> ::=
    word | " phrase "

Arguments
column
Is the name of a specific column that has been registered for full-text searching. Columns of the character string data types are valid full-text searching columns.
*
Specifies that all columns in the table that have been registered for full-text searching should be used to search for the given contains search condition(s). If more than one table is in the FROM clause, * must be qualified by the table name.
<contains_search_condition>
Specifies some text to search for in column. Variables cannot be used for the search condition.
word
Is a string of characters without spaces or punctuation.
phrase
Is one or more words with spaces between each word.

Note Some languages, such as those in the Far East, can have phrases that consist of one or more words without spaces between them.


<weighted_term>
Specifies that the matching rows (returned by the query) match a list of words and phrases, each optionally given a weighting value.
ISABOUT
Specifies the <weighted_term> keyword.
WEIGHT (weight_value)
Specifies a weight value which is a number between 0.0 and 1.0. Each component in <weighted_term> may include a weight_value. weight_value is a way to change how various portions of a query affect the rank value assigned to each row matching the query. Weighting forces a different measurement of the ranking of a value because all the components of <weighted_term> are used together to determine the match. A row is returned if there is a match on any one of the ISABOUT parameters, whether or not a weight value is assigned. To determine the rank values for each returned row that indicates the degree of matching between the returned rows, see CONTAINSTABLE.
AND | AND NOT | OR
Specifies a logical operation between two contains search conditions. When <contains_search_condition> contains parenthesized groups, these parenthesized groups are evaluated first. After evaluating parenthesized groups, these rules apply when using these logical operators with contains search conditions:
<generation_term>
Specifies a match of words when the included simple terms include variants of the original word for which to search.
INFLECTIONAL
Specifies that both plural and singular forms of nouns and the various tenses of verbs are to be matched. A given <simple_term> within a <generation_term> will not match both nouns and verbs.
<prefix_term>
Specifies a match of words or phrases beginning with the specified text. Enclose a prefix term in double quotation marks (““) and an asterisk (*) before the ending quotation mark. All text starting with the simple term specified before the asterisk is matched. The asterisk matches zero, one or more characters (of the root word or words in the word or phrase). When <prefix_term> is a phrase, each word contained in the phrase is considered to be a separate prefix. Therefore, a query specifying a prefix term of “local wine *” matches any rows with the text of “local winery”, “locally wined and dined”, and so on.
<proximity_term>
Specifies a match of words or phrases that must be close to one another. <proximity_term> operates similarly to the AND operator: both require that more than one word or phrase exist in the column being searched. As the words in <proximity_term> appear closer together, the better the match.

NEAR | ~

Indicates that the word or phrase on the left side of the NEAR or ~ operator should be approximately close to the word or phrase on the right side of the NEAR or ~ operator. Multiple proximity terms can be chained, for example:

a NEAR b NEAR c

This means word or phrase a should be near word or phrase b, which should be near word or phrase c.

Microsoft® SQL Server™ ranks the distance between the left and right word or phrase. A low rank value (for example, 0) indicates a large distance between the two. If the specified words or phrases are far apart from each other, the query is considered to be satisfied; however, the query has a very low (0) rank value. However, if <contains_search_condition> consists of only one or more NEAR proximity terms, SQL Server does not return rows with a rank value of 0. For more information about ranking, see CONTAINSTABLE.

<simple_term>
Specifies a match for an exact word (one or more characters without spaces or punctuation in single-byte languages) or a phrase (one or more consecutive words separated by spaces and optional punctuation in single-byte languages). Examples of valid simple terms are “blue berry”, blueberry, and “Microsoft SQL Server”. Phrases should be enclosed in double quotation marks (““). Words in a phrase must appear in the same order as specified in <contains_search_condition> as they appear in the database column. The search for characters in the word or phrase is case insensitive. Noise words (such as a, and, or the) in full-text indexed columns are not stored in the full-text index. If a noise word is used in a single word search, SQL Server returns an error message indicating that only noise words are present in the query. SQL Server includes a standard list of noise words in the directory \Mssql7\Ftdata\Sqlserver\Config.

Punctuation is ignored. Therefore, CONTAINS(testing, “computer failure”) matches a row with the value, “Where is my computer? Failure to find it would be expensive.”.

n
Is a placeholder indicating that multiple contains search conditions and terms within them can be specified.
Remarks

CONTAINS is not recognized as a keyword if the compatibility level is less than 70. For more information, see sp_dbcmptlevel.

Examples
A. Use CONTAINS with <simple_term>

    This example finds all products with a price of $15.00 that contains the word bottles.

    USE Northwind

    GO

    SELECT ProductName

    FROM Products

    WHERE UnitPrice = 15.00

        AND CONTAINS(QuantityPerUnit, 'bottles')

    GO

      

    B. Use CONTAINS and phrase in <simple_term>

      This example returns all products that contain either the phrase “sasquatch ale” or “steeleye stout”.

      USE Northwind

      GO

      SELECT ProductName

      FROM Products

      WHERE CONTAINS(ProductName, ' "Sasquatch ale" OR "steeleye stout" ')

      GO

        

      C. Use CONTAINS with <prefix_term>

        This example returns all product names with at least one word starting with the prefix choc in the ProductName column.

        USE Northwind

        GO

        SELECT ProductName

        FROM Products

        WHERE CONTAINS(ProductName, ' "choc*" ')

        GO

          

        D. Use CONTAINS and OR with <prefix_term>

        This example returns all category descriptions containing the strings sea or bread.

        USE Northwind

        SELECT CategoryName

        FROM Categories

        WHERE CONTAINS(Description, '"sea*" OR "bread*"')

        GO

        E. Use CONTAINS with <proximity_term>

          This example returns all product names that have the word Boysenberry near the word spread.

          USE Northwind

          GO

          SELECT ProductName

          FROM Products

          WHERE CONTAINS(ProductName, 'spread NEAR Boysenberry')

          GO

            

          F. Use CONTAINS with <generation_term>

          This example searches for all products with words of the form dry: dried, drying, and so on.

          USE Northwind

          GO

          SELECT ProductName

          FROM Products

          WHERE CONTAINS(ProductName, ' FORMSOF (INFLECTIONAL, dry) ')

          GO

            

          G. Use CONTAINS with <weighted_term>

          This example searches for all product names containing the words spread, sauces, or relishes and different weightings are given to each word.

          USE Northwind

          GO

          SELECT CategoryName, Description

          FROM Categories

          WHERE CONTAINS(Description, 'ISABOUT (spread weight (.8),

              sauces weight (.4), relishes weight (.2) )' )

          GO

            


          file: /Techref/language/sql/contains.htm, 14KB, , updated: 2001/12/17 15:51, local time: 2024/11/13 04:26, owner: JMN-EFP-786,
          TOP NEW HELP FIND: 
          3.141.201.209:LOG IN

           ©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
          Please DO link to this page! Digg it! / MAKE!

          <A HREF="http://sxlist.com/Techref/language/sql/contains.htm"> CONTAINS</A>

          After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type a nice message (short messages are blocked as spam) in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.


          Link? Put it here: 
          if you want a response, please enter your email address: 
          Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
          Did you find what you needed?

           

          Welcome to sxlist.com!


          Site supported by
          sales, advertizing,
          & kind contributors
          just like you!

          Please don't rip/copy
          (here's why

          Copies of the site on CD
          are available at minimal cost.
           
          Quick, Easy and CHEAP! RCL-1 RS232 Level Converter in a DB9 backshell
          Ashley Roll has put together a really nice little unit here. Leave off the MAX232 and keep these handy for the few times you need true RS232!

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

           

            .