0
Redshift를 배우기 시작했고 Redshift에서 작동하도록 MySQL 서버에서 사용되는 함수를 변환하려고합니다. 스택 오버 플로우 마법사가 방향을 제시 할 수 있기를 기대하면서 나는 지금까지 아무런 운이 없었습니다. MySQL 기능을 Redshift로 변환
CREATE FUNCTION SS_Ans_to_Num(answer VARCHAR(1000))
RETURNS INT
BEGIN
declare answer_num int(11);
if answer = 'No' then SET answer_num = 0;
elseif answer IN ('N/A – I did not receive this training', 'N/C - No recibí esta capacitación') then SET answer_num = 0;
elseif answer IN ('Strongly Disagree', 'Totalmente en desacuerdo') then SET answer_num = 1;
elseif answer IN ('Poor','Mala') then SET answer_num = 1;
elseif answer IN ('Disagree','En desacuerdo') then SET answer_num = 2;
elseif answer IN ('Fair','Regular') then SET answer_num = 2;
elseif answer IN ('Neutral','Neutro') then SET answer_num = 3;
elseif answer IN ('Agree','De acuerdo') then SET answer_num = 4;
elseif answer IN ('Very Good','Muy buena') then SET answer_num = 4;
elseif answer IN ('Yes','Sí') then SET answer_num = 5;
elseif answer IN ('Strongly Agree','Totalmente de acuerdo') then SET answer_num = 5;
elseif answer IN ('Excellent','Excelente') then SET answer_num = 5;
else SET answer_num = 0;
end if;
return (answer_num);
END;
나는 일하는 것이이 라인을 따라 뭔가를 생각하지만 그렇지 않습니다 :
CREATE FUNCTION SS_Ans_to_Num(answer VARCHAR(1000))
RETURNS INTEGER
STABLE
AS
$$
CASE
WHEN answer = 'No' THEN SET answer_num = 0;
WHEN answer IN ('N/A – I did not receive this training', 'N/C - No recibí esta capacitación') then SET answer_num = 0;
WHEN answer IN ('Strongly Disagree', 'Totalmente en desacuerdo') then SET answer_num = 1;
WHEN answer IN ('Poor','Mala') then SET answer_num = 1;
WHEN answer IN ('Disagree','En desacuerdo') then SET answer_num = 2;
WHEN answer IN ('Fair','Regular') then SET answer_num = 2;
WHEN answer IN ('Neutral','Neutro') then SET answer_num = 3;
WHEN answer IN ('Agree','De acuerdo') then SET answer_num = 4;
WHEN answer IN ('Very Good','Muy buena') then SET answer_num = 4;
WHEN answer IN ('Yes','Sí') then SET answer_num = 5;
WHEN answer IN ('Strongly Agree','Totalmente de acuerdo') then SET answer_num = 5;
WHEN answer IN ('Excellent','Excelente') then SET answer_num = 5;
ELSE SET answer_num = 0;
END CASE;
RETURN (answer_num);
$$ LANGUAGE SQL