CASE
Добавлено: 16 фев 2007, 03:15
FB 2.0. ХП:
Задаем период, например, 200705. На выходе: "Май{5 пробелов}_2007 г.". Как показала проверка, имя месяца дополняется таким количеством пробелов, чтобы оно равнялась самой длинной строке в выборке. Это так и задумывалось?
Код: Выделить всё
SET TERM ^ ;
CREATE PROCEDURE GET_NAME_PERIOD (
ID_PERIOD INTEGER)
RETURNS (
RESULT VARCHAR(16))
AS
BEGIN
SELECT
CASE CAST(SUBSTRING(:ID_PERIOD FROM 5 FOR 6) AS INTEGER)
WHEN 1 THEN 'Январь'
WHEN 2 THEN 'Февраль'
WHEN 3 THEN 'Март'
WHEN 4 THEN 'Апрель'
WHEN 5 THEN 'Май'
WHEN 6 THEN 'Июнь'
WHEN 7 THEN 'Июль'
WHEN 8 THEN 'Август'
WHEN 9 THEN 'Сентябрь'
WHEN 10 THEN 'Октябрь'
WHEN 11 THEN 'Ноябрь'
WHEN 12 THEN 'Декабрь'
ELSE 'Unknown'
END
|| '_' || SUBSTRING(:ID_PERIOD FROM 1 FOR 4) || ' г.'
FROM
RDB$DATABASE
INTO
:RESULT;
SUSPEND;
END^
SET TERM ; ^