Системы обработки информации - язык баз данных SQL

<Выражение, вырабатывающее значение> (<value expression>)


Функция

Специфицирует значение.

Формат

<value expression> ::=

<term>

| <value expression> + <term>

| <value expression> - <term>

<term> ::=

<factor>

| <term> * <factor>

| <term> / <factor>

<factor> ::=

[+|-] <primary>



<primary> ::=

<value specification>

| <column specification>

| <set function specification>

| ( <value expression> )

Синтаксические правила

  • <Выражение, вырабатывающее значение> (<value expression>), включающее <функцию над различными элементами множества>, не должно включать никаких двухместных операторов.
  • Первый <символ> (<character>) <лексемы> (<token>), следующей за одноместным оператором, не должен быть знаком плюс или минус.
  • Если тип данных <первичного выражения> (<primary>) является типом символьных строк, то <выражение, вырабатывающее значение> (<value expression>) не должно включать никаких операторов. Типом данных результата является тип символьных строк.
  • Если тип данных обоих операндов оператора является типом точных чисел, то тип данных результата является типом точных чисел с точностью и масштабом, определяемыми следующим образом:


    a) Пусть s1 и s2 - масштабы первого и второго операндов, соответственно.


    b) Точность результата сложения и вычитания определяется в реализации, и масштаб есть max(s1,s2).


    c) Точность результата умножения определяется в реализации, и масштаб есть s1+s2.


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

  • Если тип данных какого-либо операнда оператора является типом приблизительных чисел, то тип данных результата есть тип приблизительных чисел. Точность результата определяется в реализации.
  • Общие правила

  • Если значение <первичного выражения> (<primary>) является неопределенным значением, то результатом <выражения, вырабатывающего значение> (<value expression>) является неопределенное значение.

  • Если операторы не указаны, то результатом <выражения, вырабатывающего значение> (<value expression>) является значение указанного <первичного выражения> (<primary>).


  • Когда <выражение, вырабатывающее значение> (<value expression>) применяется к строке таблицы, каждая ссылка на столбец этой таблицы является ссылкой на значение этого столбца в этой строке.


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


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


  • Если типом результата арифметического оператора является тип целых чисел, то:

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

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


  • Первыми вычисляются выражения в скобках. Когда порядок вычисления не определяется скобками, одноместные операторы применяются перед операторами умножения и деления, операторы умножения и деления применяются перед операторами сложения и вычитания, и операторы одного уровня предшествования применяются слева направо.



  • Содержание раздела