Создание запросов SQL. Сравнение ANSI и Jet SQL.
Функции и операторы Access, используемые вместо ключевых слов ANSI SQL
Часть зарезервированных слов ANSI SQL заменяется в Jet SQL операторами или функциями. В табл. 8.4 перечислены функции и операторы Jet SQL, которые соответствуют зарезервированным словам ANSI SQL.
Таблица 8.4. Функции и операторы Access, используемые вместо зарезервированных слов ANSI SQL.
| Access | ANSI SQL |
|---|---|
| And | AND |
| Avg () | AVG() |
| Between | BETWEEN |
| Count () | COUNT |
| Is | IS |
| Like | LIKE |
| Мах() | MAX() |
| Min() | MIN() |
| Not | NOT |
| Null | NULL |
| Or | OR |
| Sum() | SUM |
Функция Access IsNull(), возвращающая значение True (-1), если ее аргумент равен пустому значению, и False (0) – в обратном случае, не имеет эквивалента в ANSI SQL и не является заменой модификаторов is Null или is Not Null в предложении WHERE. Кроме того, Jet SQL не поддерживает статистические функции по подмножеству, аргументом которых является любое выражение с параметром DISTINCT, например AVG (DISTINCT имя__поля). В таких случаях требуется использовать параметр DISTINCTROW в инструкции SELECT. Выражения, в которых применяются операторы, такие как, например, And или Or, заключаются в инструкциях Jet SQL в скобки.
Оператор Between…And, который имеет синтаксис:
<выражение> [NOT] BETWEEN <значение_1> AND <значение_2>…по-разному трактуется в языках Jet SQL и ANSI SQL. В языке Jet SQL значение_1 может превышать значение_2; в ANSI SQL значение_1 должно быть меньше или равно значение_2.
Зарезервированные слова Jet SQL и функции, не входящие в ANSI SQL
Существует несколько зарезервированных слов Jet SQL, которые не имеют аналогов в ANSI SQL. Это слова:
- DISTINCTROW – позволяет исключить из результирующего множества запроса повторяющиеся строки;
- PIVOT – используется в перекрестных запросах;
- TRANSFORM – создание перекрестного запроса.
Кроме того, Jet позволяет использовать четыре статистические функции по подмножеству, не включенные в ANSI SQL (табл. 8.5).
Таблица 8.5. Дополнительные статистические функции Access SQL.
| Функция Access | Назначение |
|---|---|
| StdDev() | Смещенное значение среднеквадратичного отклонения для выборки |
| StdDevP () | Несмещенное значение среднеквадратичного отклонения для выборки |
| Var () | Значение смещенной дисперсии для выборки |
| VarP () | Значение несмещенной дисперсии для выборки |
