Snowflake LISTAGG函数生成空串而非NULL,如何直接转为NULL?
在Snowflake中用单个表达式处理LISTAGG空结果转NULL
直接用NULLIF()函数嵌套LISTAGG就能一步实现,不用拆分两列:
NULLIF(LISTAGG(DISTINCT col3, ', '), '') AS col1
原理很简单:NULLIF(a, b)会在a等于b时返回NULL,否则返回a。刚好适配LISTAGG的特性——当没有匹配到聚合行时返回空字符串,用这个函数直接把空字符串替换成NULL,一次聚合计算就搞定,比你之前拆两列的方式更高效。
这样处理后,后续过滤就可以正常用col1 IS NOT NULL来判断,不用再写col1 != ''了。
内容的提问来源于stack exchange,提问作者Guido
相关产品推荐
相关产品推荐

