w3resource

AdventureWorks Database: Find products between $1000 and $1220 in lower, upper, and lowerupper

SQL Query - AdventureWorks: Exercise-65 with Solution

65. From the following table write a query in SQL to select product names that have prices between $1000.00 and $1220.00. Return product name as Lower, Upper, and also LowerUpper.

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 lowercased, uppercased, and doubly lowercased-then-uppercased substrings of the 'Name' column
SELECT LOWER(SUBSTRING(Name, 1, 25)) AS Lower,   
       UPPER(SUBSTRING(Name, 1, 25)) AS Upper,   
       LOWER(UPPER(SUBSTRING(Name, 1, 25))) As LowerUpper  

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

-- Filtering the results to include only rows where the 'standardcost' column is between 1000.00 and 1220.00
WHERE standardcost between 1000.00 and 1220.00;

Explanation:

  • The SQL query retrieves data from the Product table within the Production schema.
  • It applies string manipulation functions to the Name column to generate different variations of the substring.
  • The SUBSTRING() function extracts a portion of the 'Name' column, starting from the first character and up to 25 characters.
  • The LOWER() function converts the extracted substring to lowercase, and the UPPER() function converts it to uppercase.
  • In the case of 'LowerUpper', the substring is first converted to uppercase, then to lowercase.
  • The result set includes three columns: 'Lower', 'Upper', and 'LowerUpper', representing the lowercased, uppercased, and doubly lowercased-then-uppercased substrings, respectively.
  • The WHERE clause filters the results to include only rows where the value of the 'standardcost' column falls within the specified range.

Sample Output:

lower                    |upper                    |lowerupper               |
-------------------------+-------------------------+-------------------------+
hl road frame - black, 58|HL ROAD FRAME - BLACK, 58|hl road frame - black, 58|
hl road frame - red, 58  |HL ROAD FRAME - RED, 58  |hl road frame - red, 58  |
road-350-w yellow, 40    |ROAD-350-W YELLOW, 40    |road-350-w yellow, 40    |
road-350-w yellow, 42    |ROAD-350-W YELLOW, 42    |road-350-w yellow, 42    |
road-350-w yellow, 44    |ROAD-350-W YELLOW, 44    |road-350-w yellow, 44    |
road-350-w yellow, 48    |ROAD-350-W YELLOW, 48    |road-350-w yellow, 48    |

SQL AdventureWorks Editor:

Practice Online


Contribute your code and comments through Disqus.

Previous: Provide the connections in Australia and the length of FirstName.
Next: Remove spaces from the beginning of a string.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/sql-exercises/adventureworks/sql-adventureworks-exercise-65.php