为什么此查询不起作用? (我试图替换嵌套的IF语句“… SET lkey = IF(lkey> = 11,lkey-5,IF(lkey> 5,lkey 2,lkey)
UPDATE pages SET lkey = CASE lkey WHEN lkey >= 11 THEN lkey - 5 ELSE CASE lkey WHEN lkey > 5 THEN lkey + 2 ELSE lkey END END,rkey = CASE lkey WHEN lkey >= 11 THEN rkey - 5 ELSE CASE rkey WHEN rkey < 11 THEN rkey + 2 ELSE rkey END END WHERE rkey > 5 AND lkey < 12;
在这个子句中的语法是错误的(和类似的)
CASE lkey WHEN lkey > 5 THEN lkey + 2 ELSE lkey END
这是
CASE WHEN [condition] THEN [expression] ELSE [expression] END
要么
CASE [expression] WHEN [value] THEN [expression] ELSE [expression] END
所以在你的情况下它会读:
CASE WHEN lkey > 5 THEN lkey + 2 ELSE lkey END
查看文档(CASE表达式):
原文地址:https://www.jb51.cc/sqlite/198142.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。