Returning all data from a table
Select some columns
Filtering rows
Text patterns
To be or NULL to be
A bit of mathematics
Let's practice
23. Put your skills into practice


Nicely done! Here's a quick recap of what we learned today:

  • Each query starts with SELECT, followed by comma‐separated column names. To retrive all columns from a table, use the asterisk (*).
  • After SELECT comes the FROM caluse which indicates the name of the table from which you want to retrive the above data.
  • Optionally, you can use a WHERE clause to filter the rows.
  • You can use mathematical signs for comparison: >, >=, =, <=, <, !=, <>.
  • You can check, whether a value is inside an interval using BETWEEN.
  • You can compare string and text patterns using LIKE and the following two wildcards:
    • % for any number of characters (including zero)
    • _ for only one character
  • To list more than one conditional expression, use the AND and OR operators as needed. Remember: grouping matters. If needed use parentheses to group expressions.
  • NULLs are a little bit more complicated. You have to use IS NULL to check whether a value is NULL.
  • All conditions can be negated with the NOT operator.

Now, let's put together all the information we've learned so far. Let's imagine a customer who walks in and wants to know if we have any cars that meet his needs.


Select all columns for cars that:

  • Were produced between 1999 and 2003.
  • Are not Volkswagens.
  • Have a model beginning with either 'P' or 'T'.
  • Have a set price.

Stuck? Here's a hint!


WHERE ProductionYear BETWEEN 1999 AND 2003
  AND Brand != N'Volkswagen'
  AND (Model LIKE N'P%' OR Model LIKE N'T%')