在 qliksense 表达式中解码
Decode in qliksense expression
我的表达式中有解码函数,我在 qliksense 表达式中转换这个解码.. 看起来 qliksense 默认没有 decode 关键字
那么我如何在 qliksense 中转换此解码
SUM(DECODE(Rcount,0,DECODE(H.documentno,NULL,(C.gross- C.amont),0),0))
请帮忙
Qlik 中 Decode
的等价物是 if .. then .. else 语句。
您的语句可以转换为:
SUM(
if( Rcount = 0,
if( isNull(H.documentno), C.gross - C.amont, 0)
,0)
)
如果我们从内部开始 Decode
DECODE(H.documentno,NULL,(C.gross- C.amont),0)
它可以被“翻译”为:如果H.documentno
是Null
那么returnC.gross- C.amont
否则return0
而外层的Decode
可以翻译成:if Rcount
is 0
then return the inner Decode
statement else return 0
有点warning/advice。一般来说,if .. then .. else
语句在表达式中可能会很慢(呃)。您可能看不到小数据集中的差异,但在 big/large 数据集中是可见的。如果您 可以 在加载脚本中移动此计算,而在前端仅 Sum()
结果,那么前端计算会更快
我的表达式中有解码函数,我在 qliksense 表达式中转换这个解码.. 看起来 qliksense 默认没有 decode 关键字
那么我如何在 qliksense 中转换此解码
SUM(DECODE(Rcount,0,DECODE(H.documentno,NULL,(C.gross- C.amont),0),0))
请帮忙
Qlik 中 Decode
的等价物是 if .. then .. else 语句。
您的语句可以转换为:
SUM(
if( Rcount = 0,
if( isNull(H.documentno), C.gross - C.amont, 0)
,0)
)
如果我们从内部开始 Decode
DECODE(H.documentno,NULL,(C.gross- C.amont),0)
它可以被“翻译”为:如果H.documentno
是Null
那么returnC.gross- C.amont
否则return0
而外层的Decode
可以翻译成:if Rcount
is 0
then return the inner Decode
statement else return 0
有点warning/advice。一般来说,if .. then .. else
语句在表达式中可能会很慢(呃)。您可能看不到小数据集中的差异,但在 big/large 数据集中是可见的。如果您 可以 在加载脚本中移动此计算,而在前端仅 Sum()
结果,那么前端计算会更快