Мартин грубер понимание sql перевод Лебедева В. Н. Под редакцией Булычева В. Н. Москва, 1993 martin gruber


If sity = 'London' then comm: = comm + .01 else comm: = comm - .01


Download 1.45 Mb.
bet144/172
Sana26.01.2023
Hajmi1.45 Mb.
#1128343
1   ...   140   141   142   143   144   145   146   147   ...   172
Bog'liq
Грубер. Понимание SQL

If sity = 'London' then comm: = comm + .01
else comm: = comm - .01

Любое значение, вводимое в переменную city, или будет равно "London", или не будет равно. Следовательно, в каждом случае значение комиссионных будет либо увеличено, либо уменьшено. Однако, эквивалентные команды в SQL выполняются по разному:
EXEC SQL UPDATE Salespeople
SET comm = comm + .01
WHERE sity = 'London';

и
EXEC SQL UPDATE Salespeople
SET comm = comm - .01;
WHERE sity <> 'London';

(Вариант на ПАСКАЛе работает только с единственным значением, в то время как вариант на SQL работает со всеми таблицами.)
Если значение city в варианте на SQL будет равно значению NULL, оба предиката будут неизвестны, и значение comm, следовательно, не будет изменено в любом случае.
Вы можете использовать переменную indicator, чтобы сделать поведение вашего главного языка непротиворечащим этому, с помощью создания условия, которое исключает NULL значения:
If i_city > = O then
begin
If city = 'London' then comm: = comm + .01
else comm: = comm - .01;
end;
{begin and end нужны здесь только для понимания}

ПРИМЕЧАНИЕ: Последняя строка этого примера содержит ремарку — {begin и end необходимы только для понимания}

В более сложной программе, вы можете захотеть установить Булеву переменную в "верно", чтобы указать что значение city = NULL. Затем вы можете просто проверять эту переменную всякий раз, когда вам это необходимо.


ДРУГОЕ ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННОЙ INDICATOR
Переменная indicator также может использоваться для назначения значения NULL. Просто добавьте ее к имени главной переменной в команде UPDATE или INSERT тем же способом что и в команде SELECT. Если переменная indicator имеет отрицательное значение, значение NULL будет помещено в поле. Например, следующая команда помещает значения NULL в поля city и comm, таблицы Продавцов, всякий раз, когда переменные indicator — i_a или i_b будут отрицательными; в противном случае она помещает туда значения главных переменных:

Download 1.45 Mb.

Do'stlaringiz bilan baham:
1   ...   140   141   142   143   144   145   146   147   ...   172




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling