gpt4 book ai didi

我的查询的 MYSQL Bucketing 问题

转载 作者:行者123 更新时间:2023-11-29 05:40:52 25 4
gpt4 key购买 nike

我正在尝试将费率限制在用户可定义的范围内。来自用户的输入是一组关于存储桶的简单指令,但我无法正确使用 SQL。

这是我的

SELECT r.*,CASE
WHEN rate_amt < 0.25 THEN (rate_amt + 0.5) as rate_amt
WHEN (rate_amt >= 0.25 AND rate_amt < 0.5) THEN (rate_amt + 0.25) as rate_amt
WHEN (rate_amt >=0.5 AND rate_amt < 0.75) THEN (rate_amt + 0.01) as rate_amt
WHEN ELSE THEN (rate_amt) as rate_amt FROM (sc_module_rates r)

运行此 SQL 产生错误

SQLSTATE[42000]: Syntax error or access violation: 1064 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 rate_amt
WHEN (rate_amt >= 0.25 AND rate_amt < 0.5) THEN (0.25) as rate_amt
W' at line 2

表格如下所示:

+-------------------+
| rate | rate_amt |
---------------------
| fiji | 0.04 |
| somoa | 0.76 |
| japan | 0.51 |
| china | 0.25 |

我需要我的输出基本上将用户定义的 margin 添加到这些费率(一个数字,如查询中所示)

谁能告诉我我做错了什么?我曾多次尝试更改 WHEN 子句,例如:

AND(rate_amt >=0.5 , rate_amt < 0.75)
(rate_amt >=0.5 <0.75)
(rate_amt BETWEEN 0.5 and 0.75)

都没有成功,并且出现相同的错误消息。

最佳答案

语法是CASE...WHEN...THEN...[ELSE]...END。您缺少 END

此外,在您的查询结束时,它只是ELSE rate_amt,而不是ELSE THEN

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html

关于我的查询的 MYSQL Bucketing 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com