Неизвестный столбец в «списке полей» IN SQL - PullRequest
0 голосов
/ 30 апреля 2020
 DELIMITER //
 CREATE FUNCTION fnc_credit_custstatus
 RETURNS VARCHAR(6) DETERMINISTIC
 BEGIN
 DECLARE custstatus VARCHAR(6);
 IF CustCredit>=1000 THEN SET custstatus='VIP';
 ELSEIF CustCredit<1000 THEN SET custstatus='NONVIP';
 END IF;
 RETURN custstatus;
 END //
 DELIMITER ;

Я думаю, что я создал FUNCTION успешно succe, но когда я ВЫБИРАЮ, функция имеет значение Код ошибки: 1054 Неизвестный столбец 'fnc_credit_custstatus' в 'списке полей'

 SELECT*, fnc_credit_custstatus AS custstatus
 FROM customer_salon

1 Ответ

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

Вы должны передать параметр ... и это не синтаксис, потому что вы его не определяете.

drop function if exists f;

DELIMITER //
 CREATE FUNCTION f(custcredit int)
 RETURNS VARCHAR(6) DETERMINISTIC
 BEGIN
 DECLARE custstatus VARCHAR(6);
 IF CustCredit>=1000 THEN SET custstatus='VIP';
 ELSEIF CustCredit<1000 THEN SET custstatus='NONVIP';
 END IF;
 RETURN custstatus;
 END //
 DELIMITER ;
 set @cr = 2000;
 select @cr,f(@cr);

+------+--------+
| @cr  | f(@cr) |
+------+--------+
| 2000 | VIP    |
+------+--------+
1 row in set (0.001 sec)

или в вашем случае

SELECT *, f (custcredit) AS custstatus FROM customer_salon

...