DynamoDB PartiQL中如何实现IFNULL/Coalesce等效功能?
回答
完全可以实现,不需要等官方上线COALESCE/IFNULL函数,用DynamoDB PartiQL现有原生语法就能写出等效逻辑。
你需要的COALESCE(col1, col2)效果(优先取col1值,col1为空则取col2值),直接用CASE WHEN条件分支即可实现,可直接执行的语句如下:
SELECT CASE WHEN col1 IS NOT NULL THEN col1 ELSE col2 END FROM sometable;
补充说明
- 这个写法的判定逻辑和标准COALESCE完全对齐:只要col1属性存在且值不为
NULL,就返回col1;如果col1不存在、或者值显式为NULL,就返回col2的值。 - 如果需要合并3个及以上字段,只要按优先级顺序追加WHEN判断分支即可,比如要实现
COALESCE(col1, col2, col3),写法如下:SELECT CASE WHEN col1 IS NOT NULL THEN col1 WHEN col2 IS NOT NULL THEN col2 ELSE col3 END FROM sometable; - 注意不要直接在DynamoDB PartiQL里写COALESCE函数调用,目前这个词只是预留关键字,执行引擎并没有实现对应函数逻辑,直接调用会抛出语法错误。
内容的提问来源于stack exchange,提问作者Grant Moore
相关产品推荐
相关产品推荐

