原生SQL数据集
一般在SQL数据集嵌套执行性能低或是SQL数据集不支持的数据集语句(如Syabse数据库子数据集不支持Order by),我们可以使用原生SQL数据集来实现。
- SQL数据集是一类封装结构的原生SQL数据集语句,在解析SQL语句过程中对最外层进行了包装:如“select area from area”解析后的执行语句为“select T84.area as F85 from (select area from area) T84”;而原生SQL数据集没有对最外层进行包装,是按照“所见即所得”的方式进行解析并执行。
- SQL数据集不支持“select * from”的语句;而原生SQL数据集支持该语句
私有参数
私有参数可用于数据集过滤筛选。
示例:
- 参数名称 分类
- 参数别名 分类
- 数据类型 字符串
- 控件类型 下拉框
备选值设置:
select category_name FROM craw.ods_cwr_end_products_nd
where site_id = 1509097774036029440 and category_name <> ''
group by category_name
默认值设置:
select category_name FROM craw.ods_cwr_end_products_nd
where site_id = 1509097774036029440 and category_name <> ''
group by category_name limit 1
备选值_实际值, 备选值_显示值,默认值_实际值,默认值_显示值 全部选 category_name
新添加私有参数后,直接 拖拽
到编辑框中的where条件位置即可。如下所示:
编辑器显示:
where site_id = 1509097774036029440 and category_name <> '' AND category_name = 分类
原始代码
where site_id = 1509097774036029440 and category_name <> '' AND category_name = ^P_BusinessViewCustomParameter.I2c90808f018842ed42ed816e01886a67ae802ab8.分类^
输出字段
-> 检测输出字段
,在弹窗中,点击 输出字段检测
,更新输出字段。最后点击保存。
多重过滤
原生SQL数据集使用 私有参数
实现数据过滤筛选。新添加私有参数后,直接 拖拽
到编辑框中的where条件位置即可
AND 条件左右两边的条件语句,都用 {[
和 ]}
把条件语句包起来。
正确写法:
where {[ group_root_cate = ^P_BusinessViewCustomParameter.I2c90808f018842ed42ed816e01885732457f0f95.大类^ ]} AND {[ group_title = ^P_BusinessViewCustomParameter.I2c90808f018842ed42ed816e01885732457f0f95.小类^ ]}
错误写法:
where group_root_cate = ^P_BusinessViewCustomParameter.I2c90808f018842ed42ed816e01885732457f0f95.大类^
AND group_title = ^P_BusinessViewCustomParameter.I2c90808f018842ed42ed816e01885732457f0f95.小类^
原生SQL数据集 https://wiki.smartbi.com.cn/pages/viewpage.action?pageId=44499269