操作入口
1、在系统下拉菜单新建原生SQL数据集。
2、在“数据集”界面新建原生SQL数据集。
1)进入“数据集”界面的入口:
入口1:选择系统快捷菜单 数据集 。
入口2:选择系统导航栏的 数据准备 ,选择“数据准备”界面主菜单 数据集 。
2)新建原生SQL数据集的入口:
入口1:在“数据集”界面点击 新建数据集 > 原生SQL数据集 。
入口2:在“数据集”界面的表格树目录区,在现有文件夹的更多操作,选择 新建数据集 > 原生SQL数据集 。
功能说明
- 当原生SQL数据集中通过“select * from”语句返回结果集时,建议先通过“原生SQL数据集窗口 > 工作区 > 输出字段”的右键菜单选择 检测输出字段 命令检测出输出字段,再保存当前原生SQL数据集,确保在数据集定义的目录资源树上可以看到该数据集的输出结果。
- 原生SQL数据集中,在执行 检测输出字段 时,会从连接的数据库中读取输出字段的数据类型。
- 原生SQL数据集支持在同数据源下跨Schema进行查询,但是必须确保连接该数据源的用户对进行查询的Schema拥有相应的权限。
界面介绍
“原生SQL数据集”界面主要分为以下几个区域:
- 可选资源区:该区列出了所有可被原生SQL数据集使用的资源。
- SQL文本区:输入原生SQL数据集表达式的区域。
- 属性区:属性区用于设置数据集相关资源的属性。
- 工具栏:列出了所有可用于编辑原生SQL数据集的工具按钮。在“原生SQL数据集”界面中可以进行局部参数设置、参数缺省值设置。
可选资源区
可选资源区列出了所有可被原生SQL数据集使用的资源。用户只需将各资源拖到相应的区域,如将参数拖拽到where条件下和字段进行关联。
显示别名/名称:该区针对“关系数据源”、“联合数据源”和“指标数据源”下的各资源:表、字段、视图、存储过程、表副本和视图副本,提供了“显示名称”和“显示别名”的功能。默认以“别名”显示。
模糊搜索:我们可以该区最下方的搜索引擎对相关资源快速搜索定位。可以在搜索区输入所需字段的真名或是别名进行模糊搜索。
SQL文本区
SQL文本区使用 SQL语句编辑器 输入SQL语句及其对象。
原生SQL数据集输入的注意事项:
- 在原生SQL数据集中编写SQL语句时,不能含有特殊字符,否则会报错。目前已知的特殊字符有 " ^ ", 单个" \ ", 以及非成对出现的 " {[ ", " ]} "。
- 原生SQL数据集可以使用的资源:参数、函数、用户属性(使用时请用括号括起来)
- 如果有多条语句,用分号和回车隔开;
- 表关系视图的定义对原生SQL数据集不起效;
- 数据行权限设置对原生SQL数据集不起效。
- 设置参数缺省值,在原生SQL数据集中的设置方法为:
SQL语句编辑器:
基本功能
1、关键字高亮:支持常见关键字(例如select、from、where、order、by、group等)、聚合函数(SUM、COUNT、AVG、MAX、MIN等)等的高亮;
2、输入提示:当用户进行输入时,显示输入关键字的提示列表,供用户进行选择
3、代码折叠,实现括号之间的内容的折叠
4、产品原有的编辑器中的对象
对应的对象如下:
- sql查询:表(普通表和视图)、字段、计算字段、参数、私有参数、函数(系统函数和数据库函数)、用户属性
- 原生sql查询:参数、私有参数、函数(系统函数和数据库函数)、用户属性
功能点:
- 对象的拖拽
- 对象的复制
- 对象的删除
5、表、系统函数、数据库函数的提示
表提示:在from关键字后面输入时,就会出现数据源下的表的提示,如下图所示
系统函数、数据库函数的提示:输入内容,就会有相应的提示,如下图所示:
IF函数
1、IF函数可以用来动态拼接动态的sql,用来满足需要根据不同的条件输出不同的sql语句的场景。
语法:IF(条件,true结果[, false结果])
注:中括号内表达式可选项,IF函数是支持嵌套的
如下图的例子:
2、IF函数添加到左侧资源树节点,可以直接拖拽到编辑器中。目前是放在函数列表-系统函数-编辑器函数下,使用升级类将其插入到资源树下。
3、编辑器中的输入提示
4、IF函数是作为表达式中的一个函数节点,只需要继承自smartbi.freequery.expression.function.Function就能实现IF函数的解析功能,实现类如下图:
编辑器快捷键
编辑器中内置了一些快捷键,方便编写sql,常用的快捷键如下:
快捷键
说明
Ctrl + D
删除一行
Alt + Shift + Down
复制选中行
Alt + Up
向上移动行
Alt + Down
向下移动行
Ctrl + C
复制
Ctrl + V
粘贴
Ctrl + F
查找
Ctrl + H
替换
Delete
向后删除
Backspace
向前删除
Home
光标移到到行首
End
光标移到到行尾
PageUp
向上翻页
PageDown
向下翻页
编辑器的替换是支持对象的替换的,待替换的对象需要使用对象的文本表示形式,如下图所示:
工具栏
输出字段
在数据集输出区会列出所有的输出字段。如下图,选中字段,在下面属性区可以对部分属性进行设置。
下面是对字段属性的详细说明:
对象 | 设置项 | 说明 |
输出字段 | 标识 | 字段的全局唯一标识,由字段类型和其ID号共同构成。不允许重新设置。 |
名称 | 字段的真名。不允许重新设置。 | |
别名 | 字段的别名,即显示的名字。允许重新设置。 | |
描述 | 对字段的相关描述,被用于其提示信息中。允许重新设置。 | |
数据类型 | 字段的数据类型,主要包含:整数、浮点、字符串、日期、时间、日期时间、文本、对象、集合。允许重新设置。 | |
数据格式 | 根据数据类型选择输出字段的数据格式,该格式选项在 数据格式 中进行设置。允许重新设置。 | |
转换规则 | 选择是否对该字段进行转换规则,若设置转换规则,其所选的转换规则在 转换规则 中定义。 | |
脱敏规则 | 数据脱敏 是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。 |
检测输出字段
新建的原生SQL数据集,必须要设置 检测输出字段,否则在右侧“数据集输出区”面板上“输出字段”下的字段显示成了问号。
示例说明:
1、如下图所示,新建一个“原生SQL数据集”,我们可以看到右侧的“数据集输出”面板上“输出字段”下并没有把所有的字段列出来,而是显示成了一个问号。同时在“预览数据”时,看到的表格上也只有一列,列名也是问号。
2、我们在SQL编辑器中可能会输入复杂的SQL语句,Smartbi自身是无法解析SQL语句并自动判断有哪些输出字段的。它只能利用数据库的功能,先去执行该SQL语句,根据数据库返回的结果集来判断有哪些输出字段。因此,我们需要在“输出字段”节点上点击鼠标右键,然后点击“检测输出字段”菜单项。
待输入的SQL语句执行成功后,在“输出字段”节点下,就会列出所有的字段。选择某字段,可以设置别名、数据格式,以及其他各种属性。