Read our blogs, tips and tutorials
Try our exercises or test your skills
Watch our tutorial videos or shorts
Take a self-paced course
Read our recent newsletters
License our courseware
Book expert consultancy
Buy our publications
Get help in using our site
545 attributed reviews in the last 3 years
Refreshingly small course sizes
Outstandingly good courseware
Whizzy online classrooms
Wise Owl trainers only (no freelancers)
Almost no cancellations
We have genuine integrity
We invoice after training
Review 30+ years of Wise Owl
View our top 100 clients
Search our website
We also send out useful tips in a monthly email newsletter ...
Software ==> | SQL (203 exercises) |
Topic ==> | Table-valued functions (8 exercises) |
Level ==> | Harder than average |
Subject ==> | SQL training |
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.
First (if you haven't already done so) run the script shown above to generate the Doctor Who training database.
You'll find this exercise much easier to do if you have access to the following scalar functions:
Function | Argument | Returns |
---|---|---|
fnCompanions | EpisodeId | A comma-delimited list of the companions in this episode |
fnEnemies | EpisodeId | A comma-delimited list of the enemies in this episode |
You may have already created these as part of a (much) earlier exercise on variables; otherwise, this should be your first task!
Write a function (the one in the answer is called fnSilly, for reasons which will become apparent) which takes two arguments:
Argument | Heading 2 | Example |
---|---|---|
@CompanionName | Part or all of a companion name | Wilf |
@EnemyName | Part or all of an enemy name | Ood |
The easiest way to describe what your function should return is by example. If you run this SQL:
-- show episodes featuring either Wilfred Mott or The Ood
SELECT * FROM dbo.fnSilly('wilf','ood')
Then you should see this:
There are 2 episodes featuring Wilf, and 4 featuring the Ood (although one of the episodes is the same in each case).
The important thing to notice is that where an episode is selected by reason of its companion, the Appearing column shows a comma-delimited list of the companions appearing in the episode; where it is selected by reason of its enemy, the Appearing column shows a comma-delimited list of the enemies appearing in the episode.
Still bored? You could always work out how to combine the companions and enemies in the Appearing column for a duplicated episode, to avoid it appearing twice in the list (this isn't included in the answer!).
Optionally, save your query as Getting silly.sql, then close it down.
You can find other training resources for the subject of this exercise here:
Kingsmoor House
Railway Street
GLOSSOP
SK13 2AA
Landmark Offices
99 Bishopsgate
LONDON
EC2M 3XD
Holiday Inn
25 Aytoun Street
MANCHESTER
M1 3AE
© Wise Owl Business Solutions Ltd 2024. All Rights Reserved.