我目前正在编写一个使用case语句来确定要运行的查询的存储过程。在我的其中一个查询中是一个case表达式,每次我尝试保存更改的过程时,都会收到语法错误。如果没有这种情况表达式,该过程将会保存正常,但是一旦添加它就会失败。我知道表达式本身的语法是准确的,所以我想知道case语句中是否允许使用case表达式。MySQL - 存储过程 - 在Case语句中使用Case表达式?
实施例:
CASE
WHEN x = 1 THEN
SELECT
5 AS 'Col1',
CASE
WHEN y = 5 THEN 2
ELSE 0
END AS 'Col2'
FROM table
WHERE 1=1
;
WHEN x = 2 THEN
SELECT
*
FROM table2
;
ELSE
SELECT
*
FROM table3
;
END CASE;
任何帮助,将不胜感激。是否有可能在case语句中有一个case表达式?如果是这样,它的格式是不同的?我怎样才能使这个工作...?
谢谢!
您可以尽可能多地嵌套case语句,但要认真考虑它,因为这几乎是意大利面条逻辑的定义。 –
无论您想要做什么,这可能会成为您系统的恶劣先例 – Drew
我们正在自动执行某个报告。根据过程中的模板馈送,使用不同的查询选择。语法有什么问题吗?如果允许将表达式放入语句中,为什么它会说我有语法错误? – WoofDg79