Встроенная переменная |
Описание |
Пример |
CURRENT_USER |
Имя текущего пользователя |
UPDATE accounts |
NULL |
Пустое значение, используемое в условиях поиска |
|
- Перетворення типів даних.
Функции преобразования типа
Каждая функция относит выражение к определенному типу данных.
Синтаксис
CBool(выражение) CByte(выражение) CCur(выражение) CDate(выражение) CDbl(выражение) CDec(выражение) CInt(выражение) CLng(выражение) CSng(выражение) CStr(выражение)
CVar(выражение)
Обязательный аргумент выражение является любым строковым или числовым выражением.
Возвращаемые типы
Имя функции определяет возвращаемый тип, как показано в следующей таблице.
Функция |
Возвращаемый тип |
Диапазон аргумента выражение |
CBool |
Boolean |
Любое допустимое строковое или числовое выражение. |
CByte |
Byte |
От 0 до 255. |
CCur |
Currency |
От -922337203685477,5808 до 922337203685477,5807. |
CDate |
Date |
Любое допустимое выражение даты. |
CDbl |
Double |
От -1,79769313486231E308 до |
CDec |
Decimal |
+/-79228162514264337593543950335 для чисел с нулевым масштабным фактором, т. е. без десятичных разрядов. Для чисел с 28 десятичными разрядами значения принадлежат диапазону |
CInt |
Integer |
от -32 768 до 32 767; дробные части округляются. |
CLng |
Long |
от -2147483648 до 2147483647; дробные части округляются. |
CSng |
Single |
От -3,402823E38 до -1,401298E-45 для отрицательных чисел; от 1,401298E-45 до 3,402823E38 для положительных чисел. |
CStr |
String |
Returns for CStr depend on the expression argument. |
CVar |
Variant |
Такой же диапазон, как у функции Double для чисел. Такой же диапазон, как у функции String для других символов. |
Если выражение, переданное функции, находится за пределами диапазона типа данных, в который оно преобразуется, возникает ошибка.
В целом код можно задокументировать с помощью функций преобразования типа данных, чтобы показать, что результат некоторой операции должен выражаться в определенном типе данных, а не в типе данных, используемом по умолчанию. Например, функция CCur используется для принудительного использования арифметических действий с денежными единицами в тех случаях, когда обычно используются действия с числами с обычной точностью, двойной точностью или с целыми числами.
Функции преобразования типа данных следует использовать вместо функции Val для создания преобразований одного типа данных в другой, признанных на международном уровне. Например, при использовании функции CCur различные разделители десятичных разрядов, разделители тысячи и разнообразные параметры денежных единиц правильно распознаются в зависимости от параметра языка, заданного на компьютере.
Если дробная часть числа составляет 0,5, функции CInt и CLng всегда округляют ее до ближайшего четного числа. Например, 0,5 округляется до 0, а 1,5 округляется до 2. Функции CInt и CLng отличаются от функций Fix и Int, которые скорее обрезают, чем округляют дробную часть числа. К тому же функции Fix и Int всегда возвращают значение того же типа, который был задан при передаче данных.
Функция IsDate используется для определения возможности преобразования даты в дату или время. Функция CDate распознает литералы даты и времени, а также числа, находящиеся в диапазоне допустимых значений. При преобразовании числа в дату целая часть числа становится датой. Любая дробная часть числа преобразуется во время дня начиная с полуночи.
Функция CDate распознает форматы даты в соответствии с параметром языка, заданным на компьютере. Порядок следования дня, месяца и года может быть определен неправильно, если он представлен в формате, отличном от распознаваемых параметров даты. Кроме того, длинный формат даты не распознается, если в нем содержится строка дня недели.
Функция CVDate также создана для обеспечения совместимости с предыдущими версиями программы Visual Basic. Синтаксис функции CVDate аналогичен функции CDate, однако функция CVDate возвращает тип Variant, подтипом которого является Date, а не сам тип Date. Поскольку теперь в программу включен встроенный тип Date, необходимость в функции CVDate отпадает. Того же результата можно добиться, преобразовав выражение в тип Date, и назначив его типу Variant. Этот способ последовательно применяется для преобразования всех остальных встроенных типов в аналогичные им подтипы типа Variant.
Примечание. Функция CDec не возвращает отдельных типов данных; вместо этого она всегда возвращает тип Variant, значения которого преобразованы в подтип Decimal.
- Константи.
Константа представляет не изменяющееся значение. True, False и Null (Null. Значение, которое можно ввести в поле или использовать в выражениях и запросах для указания отсутствующих или неизвестных данных. В Visual Basic ключевое слово Null указывает значение Null. Некоторые поля, такие как поля первичного ключа, не могут содержать значения Null.) являются примерами констант, автоматически определяемых в Microsoft Access. Пользователь имеет возможность определить собственные константы языка Microsoft Visual Basic для приложений (Microsoft Visual Basic. Визуальная версия языка программирования высокого уровня Basic. Visual Basic был разработан специалистами корпорации Майкрософт для создания приложений на базе Microsoft Windows.) которые могут быть использованы в процедурах Visual Basic.
Примечание. Не допускается использование констант Visual Basic в функциях, используемых в выражениях. Например, в Visual Basic определены константы, представляющие дни недели, такие как vbSunday, представляющая воскресенье, vbMonday понедельник и т.д., которые могут использоваться в функциях. Каждой константе соответствует числовое значение: 1 для vbSunday и 2 для vbMonday. В функции, входящей в выражение, необходимо для представления дня недели использовать числовое значение константы.
- Математичні функції і команди.
При построении выражений допускаются вызовы многих скалярных функций, в том числе следующих:
функции, обрабатывающие строковые значения; функции, обрабатывающие даты; математические функции;
системные функции; другие функции, например, выполняющие преобразования данных от одного типа к другому
В следующей таблице перечислены математические операторы, используемые при создании выражений.
Оператор |
Результат |
+, - |
Унарный плюс и минус |
+ |
Сложение |
- |
Вычитание |
* |
Умножение |
/ |
Деление |
Допускается использование дополнительных операторов, таких как оператор приведения по модулю "%". Дополнительные сведения об операциях по модулю см. в документации Microsoft SQL Server.
Если в выражении используется несколько математических операторов, конструктор запросов обрабатывает выражение, используя следующую очередность операторов. Чтобы изменить порядок применения операторов, можно заключать в скобки отдельные части выражения, которые должны рассчитываться первыми. Если включены несколько операторов одного уровня, они выполняются слева направо.
Унарный + и - ,* и / ,+ и -
Допускается также использование функций, таких как AVG( ), COUNT( ), MAX( ), MIN( ) и SUM( ), для расчета средних и итоговых значений в отчетах.
Функция |
Описание |
Пример |
ROUND( ) |
Округляет число до указанного количества десятичных разрядов |
SELECT ROUND(qty * (price * discount), 2) |
FLOOR( ) |
Округляет число до ближайшего (минимального) целого числа |
UPDATE titles |
CEILING( ) |
Округляет число до ближайшего (максимального) целого числа |
INSERT INTO archivetitle |
- Оператори.
Оператор. Знак или символ, задающий тип вычисления в выражении. Существуют математические, логические операторы, операторы сравнения и ссылок. При создании или изменении условий поиска допускается использование стандартных логических операторов, перечисленных в следующей таблице. Операторы перечисляются в порядке очередности их применения.
Оператор |
Результат |
Пример |
NOT |
Логическое отрицание условия |
SELECT * FROM employee |
AND |
Должны выполняться оба условия |
SELECT * FROM employee |
OR |
Должно выполняться хотя бы одно из условий |
SELECT * FROM employee |
Ниже перечислены стандартные операторы, используемые в условиях поиска в инструкциях SQL.
Оператор |
Результат |
Пример в области сетки |
Пример в области SQL |
= |
Равно |
= 'Smith' |
SELECT fname, lname |
<> |
Не равно |
<> 'Active' |
SELECT fname, lname |
> |
Больше |
> '01 Jan 1995'2 |
SELECT fname, lname |
< |
Меньше |
< 100 |
SELECT fname, lname |
>= |
Больше или равно |
>= 'T' |
SELECT au_lname |
<= |
Меньше или равно |
<= '01 Jan 1995' 2 |
SELECT fname, lname |
BETWEEN expr1 |
В диапазоне значений |
BETWEEN |
SELECT fname, lname |
IS [NOT] NULL |
Проверка, является ли содержимое столбца или результат выражения пустым. |
IS NULL |
SELECT fname, lname |
[NOT] LIKE |
Сравнение с шаблоном (обычно используется для текстовых типов данных). |
LIKE ('MAC%') |
SELECT fname, lname |
expr1 [NOT] IN |
Проверка, совпадает ли результат выражения expr1со значением из списка или из результата подчиненного запроса. |
IN ('SW', 'SE') supplier_id IN
|
SELECT fname, lname SELECT product_nameFROM products |
ANY (SOME) |
Проверка, удовлетворяют ли одна или несколько строк из результирующего набора записей подчиненного запроса указанному условию. (Ключевые слова ANY и SOME являются синонимами; конструктор запросов использует ANY при создании инструкций SQL.) |
<> ANY (subquery) |
SELECT au_lname, au_fname |
ALL |
Проверка, удовлетворяют ли все строки результирующего набора записей подчиненного запроса указанному условию. |
advance > ALL (subquery) |
SELECT title FROM titles |
[NOT] EXISTS |
Проверка, возвращается ли в подчиненном запросе какой-либо результат (а не определенный результат). |
EXISTS (subquery) |
SELECT product_name |