使用带变量的大小写时出错

时间:2014-11-19 15:30:54

标签: mysql

嘿伙计们,当我在mysql中使用带有一个案例的变量时,我遇到了一个问题。

我使用的代码是

DECLARE vSite VARCHAR(20);
SET vSite = case 
 when id > 0 then 'sdfsdf' 
 else 'asd' end as name 
from customers;

当我运行此代码时,它会抛出像

这样的错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE vSite VARCHAR(20)' at line 1: DECLARE vSite VARCHAR(20)

任何人都可以指出我哪里出错了。谢谢你的宝贵帮助

1 个答案:

答案 0 :(得分:1)

您需要在BEGIN END块中声明变量。

以下是存储过程的简单示例

DELIMITER //
CREATE procedure blah(IN customer_id INT,OUT vSite VARCHAR(20))
BEGIN 
SELECT CASE WHEN id > 0 THEN 'blah'
ELSE 'mah' END INTO vSite FROM customers WHERE id=customer_id;
END//
DELIMITER ;

CALL blah(3,@somevar);
SELECT @somevar;