我一直在寻找一个函数,当 X 列为空时,我们可以用它得到一个替代值(例如 A),比如 COALESCE 函数,其等式可能类似于:
COALESCE(:X, A)
如果 X 不为空,则返回 X 的值
如果 X 为空,则返回值 A
我知道我们可以通过一个稍微复杂的方程来得到这样的结果,但我想知道我们是否可以在 JSL 中默认拥有类似的功能。
非常感谢您的帮助。
没有内置合并JSL中的功能。 但是,对于单个列,公式并不那么复杂:
if( !Is Missing( :X ),
:X, //:X is missing
"A" //else
);
诚然,它在列数更多的情况下确实会更长一些,但是还算不错。
if(
!Is Missing( :X ), :X, //:X is not missing
!Is Missing( :Y ), :Y, //:Y is not missing
!Is Missing( :Z ), :Z, //:Z is not missing
"A" //else
);
不见了()将采用一个列表或矩阵参数,并返回一个0或1的列表或矩阵,表示在这些位置是否丢失。
Is Missing( {"a", " ", "c"} ); // returns {0, 1, 0}
也许有人比我更聪明地使用它来简化版本。
当然,无论您选择哪种方法,都可以用来创建自定义功能,Coalesce()。