1. 概述
本文介绍在 添加 SQL 数据集 中如何命名参数和如何定义参数。
参数具体使用可参见:实时数据中SQL参数使用、过滤组件的参数用法
2. 参数命名
2.1 必须遵守的命名规则
1)不能以数字、$符号开头。
2)变量名只能是字母(a-z A-Z)、数字(0-9)、下划线(_)、(@)或中文的组合,并且之间不能包含空格。
3)变量名中不能含有? * . - 等字符和空格。
4)变量名不能使用编程语言的保留字。比如小写的 true、false 等保留字。但大写的 TRUE、FALSE 可以。
2.2 经典命名规则
2.2.1 匈牙利命名法
该命名法是在每个变量名的前面加上若干表示数据类型的字符。基本原则是:变量名=属性+类型+对象描述。
如 i 表示 int ,所有 i 开头的变量命都表示 int 类型。s 表示 String ,所有变量命以 s 开头的都表示 String 类型变量。
2.2.2 骆驼命名法
正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。
驼峰命名法跟帕斯卡命名法相似,只是首字母为小写,如 userName 。因为看上去像驼峰,因此而得名。
2.2.3 帕斯卡命名法
做法是首字母大写,如 UserName 。
3. 参数示例
3.1 不使用公式定义参数
在创建 添加 SQL 数据集 时,直接使用where条件定义参数,并过滤出需要的数据,缩短取数时间,例如:SELECT * FROM 销量 where 地区 = '${地区}'
3.2 使用公式定义参数
数据集 SQL 中可以使用参数宏${}动态地生成过滤条件,${}中的语句在 FineBI 中执行,将${}的执行结果与 SQL 语句拼接起来形成最终的查询语句,传递给数据库执行,可以使用多个${}。
1)例如:SELECT * FROM new_dian where 1=1 ${if(len(店性质) == 0,"","and 店性质 in ('" + 店性质 + "')")}
则设置了店性质参数,如下图所示:
2)${} 中除了 FineBI 内置的函数名、常量外,还支持自定义的参数;
例如输入如下 SQL 语句
SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,"","and 货主地区 = '" + area + "'")} ${if(len(province) == 0,"","and 货主省份 = '" + province + "'")}
IF 公式是 FineBI 内置的公式,area 和 province 都是自定义的参数。如果len(area)!=0,即 area 参数不为空,比如说 area 的值为华东,那么 IF 语句的执行结果为and 货主地区='华东',然后再把这句话拼接到 SQL 语句当中,SQL 语句就变成:
SELECT * FROM 订单 where 1=1 and 货主地区='华东' and 货主省份='江苏'
注:${} 中可以使用所有内置的 FineBI 公式,如 IF 函数。详情参见:函数
4. 注意事项
1)字符参数有英文单引号'${adce}',数字参数没有英文单引号${adce}。其中 adce 为参数。
2)参数值的引用格式为参数前面加$符号,如$adce。