Поделиться через


Структура выражений

Обновлен: Ноябрь 2007

Выражение является сочетанием имен столбцов, литералов, операторов и функций.

При составлении выражений путем сочетания элементов выполняйте следующие инструкции:

  • Для ссылки на столбцы вводятся их имена. Если в запросе используется несколько таблиц и указано имя столбца, которое не является уникальным, необходимо добавить к имени столбца имя таблицы, разделив их точкой. В следующем примере показано имя столбца job_id, уточненное именем таблицы employee:

    employee.job_id
    
  • Простой текст следует заключать в одинарные кавычки; числа не заключаются в кавычки.

    3465tdh9.alert_note(ru-ru,VS.90).gifПримечание.

    В некоторых базах данных элементы в одинарных кавычках интерпретируются как литеральные значения, тогда как элементы, заключенные в двойные кавычки, как объекты базы данных (например, имена столбцов и таблиц). Таким образом, даже если конструктор запросов и представлений примет элементы, заключенные в двойные кавычки, они могут быть интерпретированы не так, как ожидается. В SQL Server в конструкторе запросов и представлений двойные кавычки всегда рассматриваются как указатели объектов базы данных.

  • Для чисел используются стандартные арифметические операторы, для строк — оператор слияния.

  • Порядок обработки операторов определяется скобками.

  • При включении в выражение функции следует придерживаться тех же правил для передачи аргументов в эту функцию. Другими словами, ссылка на столбцы осуществляется по имени, простой текст должен заключаться в одинарные кавычки и так далее.

  • Если в качестве аргументов функции передаются имена столбцов, следует убедиться, что тип столбца соответствует типу аргумента.

  • Можно включать в выражения пользовательские функции, которые возвращают скалярное значение.

В приведенной ниже таблице иллюстрируется использование выражений в запросе.

Выражение*

Результат

SELECT (price * .9)FROM products

Вывод цены со скидкой (10% от первоначального значения в столбце цены).

SELECT sales.qty, titles.price

FROM sales INNER JOIN titles ON sales.title_id = titles.title_id ORDER BY (sales.qty * titles.price)

Сортировка результирующего набора после соединения двух таблиц по итоговому значению заказа (количество, умноженное на цену).

SELECT au_lname, au_fname FROM authors WHERE (SUBSTRING(phone, 1, 3) = '415')

Вывод списка авторов, код области которых указывает на Сан-Франциско.

SELECT ord_num, ord_date FROM sales WHERE (ord_date >= DATEADD(day, -10, GETDATE()))

Поиск всех заказов в таблице sales, которые были сделаны за последние 10 дней. Текущая дата возвращается функцией GETDATE( ).

*   Некоторые из представленных операторов и функций используются в конкретной базе данных. Подробные сведения о доступных операторах и функциях см. в документации по своей базе данных.

См. также

Основные понятия

Предопределенные переменные в выражениях

Выражения в запросах

Другие ресурсы

Выполнение запросов с помощью параметров