我有这个查询:
SELECT owner,
CASE WHEN id IN (1,2,4) THEN 25
ELSE
CASE WHEN owner = 25 THEN NULL
END as owner
FROM board2并得到这个错误:
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 'as owner
FROM board2' at line 9我的错误是什么?
示例:
id -所有者-结果所有者
2-4-7 (id已选定且所有者已更改
3-7-7 (id已选定且所有者已更改
4-7- NULL (未选择id,所有者与新所有者相同,因此将所有者设置为NULL
5-4-4(未选择id,所有者不是新所有者,无更改
X= (2,3) (必须更改的ids )
Y=7(新所有者)
发布于 2015-03-26 04:36:14
不确定这是您想要的逻辑(您有2个案例,而不是1个具有不同备选方案的案例):SELECT owner,CASE WHEN id IN (1,2,4)然后25 ELSE END CASE WHEN owner=25 THEN NULL ELSE END FROM board2
如果不是,那么在第二种情况下,你不能使用WHEN,可能需要使用IF,ELSEIF,ELSE,END IF。
发布于 2015-03-26 04:40:50
您在case-when中有语法问题,此外,您选择owner 2次也是错误的
它应该是这样的
SELECT owner,
CASE
WHEN id IN (1,2,4) THEN 25
WHEN owner = 25 THEN NULL
else 'ABC' ---- better to provide else other wise non-matching data will be selected as null, give something as you want
END as `some_other_col_name` --- a different col name since owner is already selected on the top
FROM board2https://stackoverflow.com/questions/29265472
复制相似问题