Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 9075-93 Информационная технология (ИТ). Язык баз данных SQL с расширением целостности

     5.9 <выражение значения>


Функция

Задает значение.

Формат

<выражение значения> : : =

<терм>

 | <выражение значения> + <терм>

 | <выражение значения> - <терм>

<терм> : : =

<коэффициент>

 | <терм> * <коэффициент>

 | <терм> / <коэффициент>

<коэффициент> : : =

[+ | - ] <первичное>

<первичное> : : =

<спецификация значения>

 | <спецификация столбца>

 | <спецификация функции набора>

 | (<выражение значения>)


Правила синтаксиса

1) Если <выражение значения> включает в себя <функцию набора различимых объектов>, то оно не должно включать каких-либо бинарных операций.

2) Первый <символ> <лексемы>, следующей за унарной операцией, не должен быть знаком "плюс" или "минус".

3) Если <первичное> относится к строковому типу данных, то <выражение значения> не должно включать в себя никаких операций. Результат будет относиться к строковому типу данных.

4) Если оба операнда относятся к точному числовому типу данных, то результат будет относиться к точному числовому типу, точность и масштаб которого определяются следующим образом:

a) обозначим масштаб первого и второго операндов как и соответственно;

b) точность результата операций сложения и вычитания определяется разработчиком реализации, а масштаб определяется как max ;

c) точность результата операции умножения определяется разработчиком реализации, а масштаб определяется как ;

d) точность и дробная часть результата операции деления определяется разработчиком реализации.

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

Общие правила

1) Если значение любого из <первичных> является неопределенным, то результат <выражения значения> будет неопределенным.

2) Если операции не заданы, то результатом <выражения значения> будет значение заданного <первичного>.

3) Если <выражение значения> применяется к строке таблицы, то указание столбца означает указание значения элемента данного столбца в данной строке.

4) Унарные арифметические операции + и - представляют собой унарные плюс и минус соответственно. Унарный плюс не изменяет того операнда, к которому он относится. Унарный минус рассматривается как знак операнда.

5) Бинарные арифметические операции +, -, * и / означают, соответственно, сложение, вычитание, умножение и деление. Делитель не должен быть нулем.

6) Если результат арифметической операции относится к точному числовому типу данных, то возможны следующие варианты;

a) если данная операция не является делением, то математический результат операции может быть представлен точным числом, где точность и дробная часть обусловлены типом данных результата;

b) если данная операция является делением, то математический результат операции представляется приближенным числом, точность и дробная часть которого обусловлены типом данных результата, при этом потеря хотя бы одного старшего значащего разряда является недопустимой.

7) Первыми вычисляются выражения, заключенные в скобки, а если скобки отсутствуют, то первыми выполняются вычисления, соответствующие унарным операциям, затем умножение и деление, а затем сложение и вычитание, операции одной и той же очередности выполняются слева направо.