EXERCISE TOPIC▼
SQL EXERCISES▼
SQL EXERCISES▼
- 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 | Table-valued functions exercise | Use a table-valued function to show episodes for a given doctor
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!
Software ==> | SQL (198 exercises) |
Version ==> | Any version of SQL Server |
Topic ==> | Table-valued functions (6 exercises) |
Level ==> | Relatively easy |
Courses ==> | Fast-track SQL / Advanced SQL |
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.
First (if you haven't already done so) run the script shown above to generate the Doctor Who training database.
Create a table-valued function to list out all of the episode details for a given doctor. Here's the syntax, as a reminder:
CREATE FUNCTION FunctionName(
@Parameter1 DataType1,
...,
@ParameterN DataTypeN
)
RETURNS TABLE
AS
-- return data from a single SELECT statement
RETURN
SELECT
ColumnList
FROM
TableName
You should be able to run this query to show the episodes in which anyone called Chris appeared:
-- show the Christopher Eccleston episodes
SELECT * FROM dbo.fnEpisodesByDoctor('Chris')
Here's what this should show:

The first few of the 13 episodes in which Christopher Eccleston appeared.
Create a query based on this (you'll need to give the results returned by the function a table alias, and create a join from this to the tblAuthor table) to show the details (including author) for episodes made by doctors called Chris:

The 13 episodes made by Christopher Eccleston, bringing in the author name from the tblAuthor table.
Optionally, save this query as Episodes by doctor.sql, then close it down.