X 和 Y 之间的 Teradata Z 与 Z >= Y 和 Z < X

teradata Z between X and Y vs Z >= Y and Z < X

我想在 case 语句中使用等号而不是 between 运算符,但是出现语法错误

case 
when item_price between 5 and 6 then '5-6'
when item_price between 6 and 7 then '6-7
end as price_group

不过我知道这会在刚好为 6 的商品价格之间造成某种重叠,所以我更愿意使用

case 
when item_price >= 5 and item_price < 6 then '5-6'
when item_price >= 6 and item_price < 7 then '6-7
end as price_group

第二个查询给我错误:

SELECT Failed 3706: Syntax error: expected something between '<' and '='.

不需要每次都检查范围,只检查范围上边界

case 
when item_price <= 5 then '...-5'
when item_price <= 6 then '5-6'
when item_price <= 7 then '6-7'
else                      '7-...'
end as price_group