我正在尝试在HeidiSQl的MySQ L5.7上使用CASE,
我想使用CASE调用表,并使用间隔0、1-100和100或更大的CASE。
但这是行不通的
SELECT ventas.Ventas_Id AS ID, ventas.Ventas_Fecha AS fecha, ventas.Ventas_Neto AS neto
CASE Ventas_Total
WHEN ventas.Ventas_Total = 0 THEN 'C'
WHEN ventas.Ventas_Total > 100 THEN 'S'
WHEN ventas.Ventas_Total < 100 THEN 'L'
END AS "Categoria"
FROM ventas
我收到此错误消息
SQL错误(1064):您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以获取在'CASE ventas.Ventas_Total
附近使用的正确语法。WHEN ventas.Ventas_Total = 0 THEN 'C'
第4行
答案 0 :(得分:3)
CASE
表达式有两种样式,实际上您正在混合两种类型的语法。由于CASE
表达式中有一个不等式,因此只能使用以下样式:
CASE WHEN Ventas_Total = 0 THEN 'C'
WHEN Ventas_Total > 100 THEN 'S'
WHEN Ventas_Total < 100 THEN 'L'
END AS Categoria
CASE
表达式的另一种样式仅在您只想进行相等比较时有效,例如
CASE Ventas_Total
WHEN 1 THEN 'A'
WHEN 2 THEN 'B'
WHEN 3 THEN 'C' END AS some_alias