Может кто-нибудь помочь мне решить ошибку в этой SQL функции - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь создать функцию, которая будет возвращать имя дня рождения. Я передаю имя человека в качестве параметра.

CREATE FUNCTION name_of_day (name_of_student VARCHAR(150))
RETURNS VARCHAR(150)
AS 
BEGIN
    RETURN (SELECT DAYNAME(`date_of_birth`) AS 'Name of week' 
            FROM student 
            WHERE student.student_name = name_of_student);
END;

Я получил сообщение об ошибке

Код ошибки: 1064
В синтаксисе SQL произошла ошибка; проверьте руководство, соответствующее вашей MySQL версии сервера, на предмет правильного синтаксиса для использования рядом с 'как

1 Ответ

0 голосов
/ 30 апреля 2020

Удалите «AS» из него, в третьей строке посмотрите, работает ли это :) Удачи!

Вот базовый c пример из mysqltutorial.org:

DELIMITER $$

CREATE FUNCTION CustomerLevel(
    credit DECIMAL(10,2)
) 
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
DECLARE customerLevel VARCHAR(20);

IF credit > 50000 THEN
    SET customerLevel = 'PLATINUM';
ELSEIF (credit >= 50000 AND 
        credit <= 10000) THEN
    SET customerLevel = 'GOLD';
ELSEIF credit < 10000 THEN
    SET customerLevel = 'SILVER';
END IF;
-- return the customer level
RETURN (customerLevel);
END$$
DELIMITER;
...