Exercise: Joining a table variable to the events table

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 course listed below!

Category ==> SQL  (192 exercises)
Topic ==> Temporary tables and table variables  (9 exercises)
Level ==> Average difficulty
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). Once you've done this:
  1. Go into SQL Server Management Studio;
  2. Open the SQL file you've just unzipped (you can press CTRL + O to do this); then
  3. 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.

The aim of this exercise is to create a table variable to store a list of "odd" countries, then join this to the events table to see events that occurred in those odd countries.

For the purposes of this exercise, an "odd" country is one whose country id is an odd number!

Start by selecting the odd countries.

Select statement returning values using modulus

The easiest way to find the odd countries is to use the modulus operator on the CountryID. In the WHERE clause divide it by 2, but using % instead of /.  If the result isn't 0, then it must be odd!

 

This returns 22 countries.  Create a table variable called @OddCountries to hold 2 columns - OddName and OddNumber - and insert these countries into this table in your SQL:

Odd names and odd numbers

Here the results have been re-ordered as it felt odd-ly satisfying. Not punny?

 

Join this table to the tblEvent table. Add two criteria to the WHERE clause:

Criteria Details
Remove self-references Don't show events whose names contain the country they occurred in.
Co-terminosity Only show events where the event name and the OddName end in the same letter.

You should see 14 results, some of which are shown below:

RIGHT used in where to filter table variable

Use the RIGHT function to match the last letters.

Optionally save this as Odd requests.sql, then close it down.

This page has 0 threads Add post