Sunday, December 14, 2008

Раздел 1.1 Задача 1

Необходимо переписать следующий фрагмент кода , так что бы значение no_revenue можно было установить без условных операторов IF. В чём отличие первого фрагмента кода от второго?

1)
IF total_sales <= 0 THEN
no_revenue := TRUE;
ELSE
no_revenue := FALSE;
END IF;
2)
IF total_sales <= 0 THEN
no_revenue := TRUE;
ELSIF total_sales > 0 THEN
no_revenue := FALSE;
END IF;

2 comments:

  1. Первое что пришло в голову - воспользоваться функцией Decode() в комбинации с Sign() :
    no_revenue := Decode(Sign(TotalSales),1,'FALSE','TRUE');

    ReplyDelete
  2. Можно ещё проще:
    no_revenue := Nvl(total_sales,1) <= 0;

    ReplyDelete