Структура выражений
Обновлен: Ноябрь 2007
Выражение является сочетанием имен столбцов, литералов, операторов и функций.
При составлении выражений путем сочетания элементов выполняйте следующие инструкции:
Для ссылки на столбцы вводятся их имена. Если в запросе используется несколько таблиц и указано имя столбца, которое не является уникальным, необходимо добавить к имени столбца имя таблицы, разделив их точкой. В следующем примере показано имя столбца job_id, уточненное именем таблицы employee:
employee.job_id
Простой текст следует заключать в одинарные кавычки; числа не заключаются в кавычки.
Примечание. В некоторых базах данных элементы в одинарных кавычках интерпретируются как литеральные значения, тогда как элементы, заключенные в двойные кавычки, как объекты базы данных (например, имена столбцов и таблиц). Таким образом, даже если конструктор запросов и представлений примет элементы, заключенные в двойные кавычки, они могут быть интерпретированы не так, как ожидается. В 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( ). |
* Некоторые из представленных операторов и функций используются в конкретной базе данных. Подробные сведения о доступных операторах и функциях см. в документации по своей базе данных.
См. также
Основные понятия
Предопределенные переменные в выражениях