mysql - 这个查询有什么问题?我收到一个错误,因为“对于此服务器版本,选择在此位置无效,期待:'(', WITH”
问题描述
我的查询
错误:对于此服务器版本,选择在此位置无效,应为:'(',WITH
set @prev="SAME";
select `date`, `COL1` , `COL2` ,
if( `COL1`>`COL2` and ( (@prev="SAME") or (@prev="UP") ) ) then
"DOWN", @prev:="DOWN"
else if( `COL1` < `COL2` and ( (@prev="SAME") or (@prev="DOWN") ) ) then
"UP", @prev:="UP"
else
"SAME"
END IF
as 'sign'
from
temp;
解决方案
您不能IF...THEN
在查询中使用。您可以使用IF(condition, truevalue, falsevalue)
或CASE WHEN condition THEN value1 WHEN condition2 THEN value2 ELSE something END
。
IF...THEN
是过程语法。
推荐阅读
- r - 是否可以将向量索引 1 与列表元素 1 一起使用,索引 2 与元素 2 等一起使用?
- powerbi - Dax——除以来自两个不同事实的聚合
- sql - Postgres 无效的内存分配请求大小 1073741824
- email - 如何解决从网站发送的电子邮件中的可疑链接错误
- mysql - sql时间点到时间范围
- python - bs4:如何提取表“team-roster home”和“team-roster away”
- python - 从 python 的“文件”类继承并定义自定义行为 - python2 和 3
- javascript - Javascript:通过 li 中 span 的内容对列表进行排序
- angularjs - 为什么 $scope 对象无法在 view2.html 中显示来自我的控制器的数据
- sql-server - 有没有办法从案例内的存储过程中返回一个值?