sql写的有问题

这是技术文档中给出的示例
SELECT payload.x as x FROM “#” WHERE x = 1

下面是我编写的sql,执行之后报错:
SELECT
map_get(‘2664RGY’,payload) as val,
topic
FROM
“/threeLed/#”
WHERE
is_not_null(val)

去掉where is_not_null(val)。就不会报错

我的问题如下:
1、在操作Dashboard的过程中,报错都会有code,有没有code列表清单,我可以直接查询这个code对应的错误原因
2、我这个sql错在哪里,在技术文档中, 《 内置 SQL 函数》这里只列举了简单的示例,没有sql的示例,后续我遇到sql问题,能从哪里进行参考吗?(或者说如果是因为is_not_null函数不能再where用,请在文档中进行备注)
3、请帮我看看这个sql错误的原因,以及我应该怎么改

感觉是 WHERE 子句后,不支持的内建函数的问题。这些内置函数只能用于 SELECT 和 FROM 之间

是的,就是这个问题,我删掉where就可以。
那么有没有别的解决方案可以,或者提示我技术文档的地址,我再去学习一下

另外:
第一个问题有对应的错误code清单表吗

感谢您的回复

是你的 SQL 语句里包含了非法字符,单引号和双引号都是中文字符。改成这个我本地能测试通过:

SELECT
map_get('2664RGY',payload) as val,
topic
FROM
"t/#"
WHERE
is_not_null(val)
1 个赞

感谢您的指导,我过于着急忽略了这种最基础的问题。我已经解决了sql的问题。但是依照技术文档,产生了一个新的问题

1703490779641



按照技术文档,当我使用内置函数map_get(‘444’,payload)时
如果跟payload里面找不到444这个key的时候,map_get应该返回我undefind,但是这里直接报错了,您知道是什么问题吗

我将问题发在了下面,麻烦您看一下指导一下

你的 payload 里面没有’2664RGY’ 这个字段,所以 WHERE 子句没有通过:

WHERE is_not_null(map_get('2664RGY',payload))