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.

The answer to the exercise will be included and explained if you attend the Wise Owl course listed below!

Category ==> SQL  (115 exercises)
Topic ==> Table-valued functions  (6 exercises)
Level ==> Relatively easy
Course ==> Advanced SQL
Before you can do this exercise, you'll need to download and unzip this file (if you have any problems doing this, click here for help).

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:

Christopher Eccleston episodes

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:

List of episodes

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.

This page has 0 threads Add post