Oracle выполнение блока pl / sql

Declare
  a number := 5; b number := null; c number := 10;
Begin
  if a > b AND a < c then
    a := c * a;
  end if;
End;

Каким будет значение «а» после казни?

Почему ответ 5? Пожалуйста, объясни

1
0
31
1

Ответы 1

Null не является значением. Любое сравнение числа с нулем приведет к нулю. И хотя он не возвращает true или false в вашем утверждении, получение нулевого результата с помощью a > b эквивалентно возврату false. Ваш критерий AND не соответствует; a не превышает null. Следовательно, a остается равным 5.

Немного ковыряется: после казни 'a' не будет объявлено - блокировать локально :)

piezol 28.10.2018 16:24

Другие вопросы по теме