踩坑记录:
1、MAP(matchValue, dsName, matchCol, returnCol)函数如果没有没有匹配到数据时(即:在数据集dsName中的matchCol列没有找到matchValue值的一行数据)此时,函数将会原样返回matchValue;如果匹配到了,则返回returnCol列的数据,解决方案参见第3条。
2、如果matchValue是公式的值,比如B3,不要加双引号,直接用B3。
3、因为如果没有匹配到数据,MAP函数会返回matchValue,所以:如果matchValue是字符串,那么可以在数据集中添加一列数字列:假设值为1,比如select a,b, 1 AS NUM from table; 然后在最外层使用SUM()函数,将返回列指定为NUM,这样一来,如果能匹配到数据,那么,此时SUM(MAP(matchValue, dsName, matchCol, "NUM"))肯定大于0,如果没能匹配到数据,那么返回的就是matchValue,而matchValue是字符串,sum之后=0。
此方法可以用于填报,判断输入内容是否合法等。