Простейшая форма оператора select, описанная в предыдущем разделе, не является очень полезной для запросов. На практике всегда существует больше предложений в операторе select, чем в операторе, показанном в примере 6.1. Далее показан синтаксис оператора select, обращающегося к таблице, с (почти что) всеми возможными предложениями:
Этот раздел начинается с определения предложения where. Часто бывает необходимым определить одно или более условий, которые ограничивают количество выбираемых строк. Предложение where задает логическое выражение (выражение, которое возвращает значение true или false), которое проверяется для каждой (потенциально) возвращаемой строки. Если это выражение истинное, то строка возвращается (помещается в результирующий набор), если ложное, то строка отбрасывается.
В примере 6.2 показано использование предложения where.
В дополнение к знаку равенства предложение where может содержать другие операторы сравнения, включая следующие:
♦ <>(или!=) - неравно;
♦ < - меньше чем;
♦ > - больше чем;
♦ >= - больше или равно;
♦ <= - меньше или равно;
♦ !> - не больше;
♦ к - не меньше.
В примере 6.3 показано использование оператора сравнения в предложении where.
Выражение также может быть частью условия предложения where (пример 6.4).
Сравнения строк (т. е. значений с типами данных char, varchar, nchar и nvarchar) выполняются в соответствии с порядком сортировки (с учетом порядка сортировки, заданного при инсталляции Database Engine). Если две сравниваемые строки используют код ANSI (или любой другой код), то сравниваются каждые последующие символы (первый, второй, третий и т. д.). Один символ считается меньшим в последовательности, чем другой, если он появляется в кодовой таблице раньше второго. Две строки разной длины сравниваются при добавлении к меньшей строке справа пробелов, так что длина обеих сравниваемых строк одинакова. Числа сравниваются алгебраически. Значения типов данных даты и времени (такие как date, time и datetime) сравниваются в хронологическом порядке.