- нравится:
у сценарий SQL в Firebird для назначения. Во-первых, мне нужно создать таблицу из 2 столбцов и добавить некоторые значения (значения не должны ничего делать)
--Create the table
create table salary_class (
class varchar(5),
occurrence int ) ;
commit work;
--Add Values to our table
insert into salary_class (class, occurrence)
values ('ELITE', 0);
insert into salary_class (class, occurrence)
values ('HIGH', 0);
insert into salary_class (class, occurrence)
values ('MID', 0);
insert into salary_class (class, occurrence)
values ('LOW', 0);
commit work;
После того, как это работает, я создаю процедуру. Предполагается вернуть определенную строку на основе числа, переданного в нее.
--Create f_class procedure
set term # ;
create procedure f_class(salary SALARY)
returns (lv VARCHAR(10)) as
begin
--If statements for each occurrence level
if (salary <= 39999) then
lv = 'LOW';
suspend;
if (salary <= 67999) then
lv = 'MID';
suspend;
if (salary <= 99999) then
lv = 'HIGH';
suspend;
if (salary >= 100000) then
lv = 'ELITE';
suspend;
end#
set term ; #
--Demonstrate that f_class function works correctly
select lv from f_class(20000);
select lv from f_class(67999);
select lv from f_class(68000);
select lv from f_class(120000);
Вызов функции дает мне
LV
null
null
null
ELITE
Но это должно дать мне
LV
LOW
MID
HIGH
ELITE
Если бы кто-то мог пролить свет на это, это было бы очень ценно. Последние два дня я потянул за волосы руководство пользователя Firebird.