w3resource

AdventureWorks Database: Product names that begin with the prefix chain

SQL Query - AdventureWorks: Exercise-56 with Solution

56. From the following table write a query in SQL to return all the product names with at least one word starting with the prefix chain in the Name column.

Sample table: Production.Product
productid|name                            |productnumber|makeflag|finishedgoodsflag|color       |safetystocklevel|reorderpoint|standardcost|listprice|size|sizeunitmeasurecode|weightunitmeasurecode|weight |daystomanufacture|productline|class|style|productsubcategoryid|productmodelid|sellstartdate          |sellenddate            |discontinueddate|rowguid                             |modifieddate           |
---------+--------------------------------+-------------+--------+-----------------+------------+----------------+------------+------------+---------+----+-------------------+---------------------+-------+-----------------+-----------+-----+-----+--------------------+--------------+-----------------------+-----------------------+----------------+------------------------------------+-----------------------+
        1|Adjustable Race                 |AR-5381      |false   |false            |            |            1000|         750|           0|        0|    |                   |                     |       |                0|           |     |     |                    |              |2008-04-30 00:00:00.000|                       |                |694215b7-08f7-4c0d-acb1-d734ba44c0c8|2014-02-08 10:01:36.827|
        2|Bearing Ball                    |BA-8327      |false   |false            |            |            1000|         750|           0|        0|    |                   |                     |       |                0|           |     |     |                    |              |2008-04-30 00:00:00.000|                       |                |58ae3c20-4f3a-4749-a7d4-d568806cc537|2014-02-08 10:01:36.827|
        3|BB Ball Bearing                 |BE-2349      |true    |false            |            |             800|         600|           0|        0|    |                   |                     |       |                1|           |     |     |                    |              |2008-04-30 00:00:00.000|                       |                |9c21aed2-5bfa-4f18-bcb8-f11638dc2e4e|2014-02-08 10:01:36.827|
        4|Headset Ball Bearings           |BE-2908      |false   |false            |            |             800|         600|           0|        0|    |                   |                     |       |                0|           |     |     |                    |              |2008-04-30 00:00:00.000|                       |                |ecfed6cb-51ff-49b5-b06c-7d8ac834db8b|2014-02-08 10:01:36.827|
      316|Blade                           |BL-2036      |true    |false            |            |             800|         600|           0|        0|    |                   |                     |       |                1|           |     |     |                    |              |2008-04-30 00:00:00.000|                       |                |e73e9750-603b-4131-89f5-3dd15ed5ff80|2014-02-08 10:01:36.827|
      317|LL Crankarm                     |CA-5965      |false   |false            |Black       |             500|         375|           0|        0|    |                   |                     |       |                0|           |L    |     |                    |              |2008-04-30 00:00:00.000|                       |                |3c9d10b7-a6b2-4774-9963-c19dcee72fea|2014-02-08 10:01:36.827|
      318|ML Crankarm                     |CA-6738      |false   |false            |Black       |             500|         375|           0|        0|    |                   |                     |       |                0|           |M    |     |                    |              |2008-04-30 00:00:00.000|                       |                |eabb9a92-fa07-4eab-8955-f0517b4a4ca7|2014-02-08 10:01:36.827|
	  -- more --

Click to view Full table

Sample Solution:

-- Selecting specific columns 'Name' and 'Color' from the Product table
SELECT Name, color  

-- From the Production schema's Product table
FROM Production.Product  

-- Filtering the results to include only rows where the text search vector of the 'Name' column matches the text search query ' "Chain*" '
-- The to_tsvector() function converts the 'Name' column to a text search vector
-- The @@ operator checks if the text search vector matches the text search query
-- The to_tsquery() function creates a text search query from the string ' "Chain*" '
-- This query searches for products with names that start with 'Chain'
-- The double quotes ("") are used to indicate an exact phrase match
-- The asterisk (*) is used as a wildcard to match any suffix after 'Chain'
WHERE to_tsvector(name) @@ to_tsquery(' "Chain*" ');

Explanation:

  • The SQL query retrieves data from the Product table within the Production schema.
  • It selects two columns: Name and color.
  • The WHERE clause filters the results to include only rows where:
    • The text search vector of the Name column matches the text search query ' "Chain*" '.
  • The to_tsvector() function converts the Name column to a text search vector, which is a preprocessed representation of the text that is optimized for searching.
  • The @@ operator checks if the text search vector matches the text search query.
  • The to_tsquery() function creates a text search query from the string ' "Chain*" ', where 'Chain*' indicates that the search term should start with 'Chain' and '*' is a wildcard to match any suffix after 'Chain'.
  • The double quotes ("") are used to indicate an exact phrase match, ensuring that only names starting with 'Chain' are matched.

Sample Output:

name       |color |
-----------+------+
Chain Stays|      |
Chain      |Silver|

SQL AdventureWorks Editor:

Practice Online


Contribute your code and comments through Disqus.

Previous: Name with the words Mountain and Black.
Next: Product with prefixes of either chain or full.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.