- Simple Queries (4)
- Setting criteria using WHERE (5)
- Calculations (7)
- Calculations using dates (4)
- Basic joins (8)
- More exotic joins (2)
- Aggregation and grouping (8)
- Views (5)
- Subqueries (5)
- Stored procedures (5)
- Variables (8)
- Parameters and return values (11)
- Testing conditions (1)
- Looping (3)
- Scalar functions (6)
- Transactions (5)
- Creating tables (5)
- Temporary tables and table variables (9)
- Table-valued functions (6)
- Derived tables and CTEs (13)
- Dynamic SQL (4)
- Pivots (2)
- Triggers (2)
- Archived (70)
SQL | Pivots exercise | Use dynamic SQL to show PIVOT query column headers
This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.
You can learn how to do this exercise if you attend one of more of the courses listed below!
- Go into SQL Server Management Studio;
- Open the SQL file you've just unzipped (you can press CTRL + O to do this); then
- Execute this script.
This will generate the database that you'll need to use in order to do this exercise (note that the database and script are only to be used for exercises published on this website, and may not be reused or distributed in any form without the prior written permission of Wise Owl).
You need a minimum screen resolution of about 700 pixels width to see our exercises. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.
Take a deep breath before doing this exercise!
Create and set the value of a variable to hold the first word of each episode type in the tblEpisode table:
What your variable should be set to contain.
You can use the CHARINDEX function to find the first instance of a space within each episode type, although there are other ways to get at the first word of each entry. You'll need to use DISTINCT or GROUP BY to show only one value for each episode type.
Separately, write a query to show the first word of each episode type, along with the episode's doctor name and id, and pivot this to show the following:
The number of episodes by doctor, for Normal and Christmas editions.
Since it would be tedious writing the episode types out longhand (and they may change in the future) combine your two queries to get a single one using dynamic SQL to show all of the episode types:
The final query should show these results.
Save this query as Hmmm, then close it down.