|
Программирование >> Руководство по sql
в списке выбора эти операции могут использоваться в любых комбинациях с именами столбцов и числовыми константами. Например, чтобы отобразить в таблице titles повышение стоимости всех книг на 100%, можно выполнить следующий запрос: SQL: select title id, ytd sales, ytd sales * 2 from titles В результате получится следующая таблица:
Обратите внимание на нулевые значения в ytdsales и производном столбце. Любые арифметические операции над нулевыми значениями в результате дают NULL. Производному столбцу можно задать заголовок (например, Projected Sales): SQL: select title id, ytd sales, ytd sales * 2 as Projected Sales from titles Иногда, как это было в предыдущем примере, в результат включаются данные как исходного, так и производного столбца. Однако включать в список выбора столбец, на основе которого выполнялись вычисления, необязательно. Чтобы увидеть только вычисленные значения, можно выполнить следующую команду: SQL: select title id, ytd sales * 2 from titles Результат: title id PC8888 BU1032 PS7777 8190 8190 6672
Вычисления с использованием имен столбцов. Арифметические операции также можно выполнять над данными двух и более столбцов. Например: SQL: select title id, ytd sales * price from titles Результат:
Наконец, можно получать требуемые значения на основе столбцов из разных таблиц. (Многотабличные запросы рассматриваются в главе, посвященной операциям объединения таблиц и подзапросам.) Порядок выполнения арифметических тераторов. Если в выражении имеется несколько арифметических операторов, они будут выполняться в порядке, установленном в системе (рис. 4.2). В соответствии с общепринятыми правилами сначала вы- полняется умножение и деление, затем вычитание и сложение. Если в выражении присутствует несколько операторов с одинаковым приоритетом, они выполняются слева направо. Максимальный приоритет имеют выражения, взятые в скобки. Рассмотрим пример. В следующем операторе SELECT сначала вычисляется произведение ydtsales и price, так как операция умножения имеет более высокий приоритет, чем операция вычитания. SQL: select title id, ytd sales * price - advance from titles Скобки Умножение Деление Вычитание Сложение Рис. 4.2. Иерархия арифметических операторов Во избежание недоразумений используйте скобки. При выполнении следующего запроса получаются те же результаты, но его запись может показаться более понятной: SQL: select title id, (ytd sales * price) - advance from titles Результат:
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |