Qlikview里的变量声明有两种方法,一个是let, 一个是Set,本人一直有点混淆,不知道何时使用LET,何时使用SET,而且取值的时候,有多种写法,为了搞清楚,我做了个小的演示。我们都知道在qlikview的dashboard页面中可以使用dollar sign $(参数)或者直接写=参数的方式引用set or let 声明的参数变量。下面看下两者使用的差别。
Version:QlikView 11.2
1. 用LET方式声明四个参数:
LET vVar1 = 1+3;
LET vVar2 = '1+3';
LET vVar3 = Today();
LET vVar4 = 'Today()';
1.1 在qlikview里面不使用dollar sign的方式调用上面四个参数的值如下图。
1.2 在dashboard里面使用dollar sign的方式调用上面四个参数的值如下图。
2. 用SET方式重新声明上面的四个参数:
SET vVar1 = 1+3;
SET vVar2 = '1+3';
SET vVar3 = Today();
SET vVar4 = 'Today()';
2.1 在QV里面不使用dollar sign的方式调用上面四个参数的值如下图。
2.2 在dashboard里面使用dollar sign的方式调用上面四个参数的值如下图。
通过上面的演示过程可以得出总结如下:
LET和SET的区别是:
1. LET会将等号后面的语句的计算结果值赋给参数,假如用引号引起来则当成字符串处理。
2. SET会将等号后面的语句完全当成字符串,即便写一个公式或者方法也不会计算。
是否使用dollar sign($())的区别:
1. $()会将括号里面的语句当成公式或者方法来计算或者执行.
2. 不加$()会直接使用LET或者SET的赋值结果。
备注:
1. 为何上面的$(vVar3)是小数,分为两部分逻辑
1.1. 用LET方式已经将Today()的结果2014/11/30赋给了参数vVar3.
1.2. 用dollar sign的方式调用参数,$()中括号里面的语句会以公式或者方法来计算或者执行,因此2014除以11再除以30的结果就是上面的小数。