V3.0 CASE when issue
在官网 SQL手册 - 数据查询 完整CASE 表达式的 示例 某设备有三个状态码,显示其状态,语句如下:
SELECT CASE dev_status WHEN 1 THEN 'Running' WHEN 2 THEN 'Warning' WHEN 3 THEN 'Downtime' ELSE 'Unknown' END FROM dev_table;
统计智能电表的电压平均值,当电压小于 200 或大于 250 时认为是统计有误,修正其值为 220,语句如下:
SELECT AVG(CASE WHEN voltage < 200 or voltage > 250 THEN 220 ELSE voltage END) FROM meters; SELECT (CASE WHEN voltage < 200 or voltage > 250 THEN 220 ELSE voltage END) FROM meters;
错误如下 taos> SELECT (CASE WHEN voltage < 200 or voltage > 250 THEN 220 ELSE voltage END) FROM meters; DB error: syntax error near "when voltage < 200 or voltage > 250 then 220 else voltage end) from meters;" (0.000000s)
普通查询没有问题 taos> select * from meters; ts | current | voltage | phase | location | groupid |
2022-11-09 23:17:05.996 | 10.20000 | 219 | 0.32000 | California.SanFrancisco | 2 | Query OK, 1 rows in database (0.052000s)
我安装的 v3.0 版本 在window及 centos 中都试过,不行,请官方测试,或者我的用法那里不对。
咱们3.0 具体的版本号是?
哦,版本号 是 3.0.1.0 和 3.0.1.3
CASE语句的问题有下文吗,来自与官网样例文档,
windows 环境下的查询: taos> SELECT SERVER_VERSION(); server_version() |
3.0.1.0
cenos环境下的查询: taos> select server_version(); server_version() |
3.0.1.3
3.0早期版本的问题都已经都优化了,但是3.0.2.5 之前可能与现在的最新版(3.3.0.0)并不兼容,所以无法直接升级。因此建议重新部署一下最新的 3.3.0.0 ,后续升级都很方便,直接安装最新版软件即可。
开源版支持操作系统范围:https://docs.taosdata.com/reference/support-platform/