(本文档仅供参考)
SQL查询
- 原理:对用户撰写的SQL进行一层包装,添加更多分析功能。
例如客户写的是select t.x as Fa, (t.x+t.y) as Fb from T where ....
那么封装后就变成:
select Fa, Fb //可以选择显示那些字段。
from
(select t.x as Fa, (t.x+t.y) as Fb from T where .... ) TX
where .... //报表展现中,可以设置过滤条件,就是靠修改的这部分SQL实现
order by ....//报表展现中,排序操作,就是靠修改的这部分SQL实现
group by ... //报表展现中,聚合小计操作,就是靠修改的这部分SQL实现
- 优势:在报表的展现界面,还可以做排序,过滤,汇总等操作;
- 劣势:对SQL有书写要求,需要在用户sql中,显式申明别名;用不了select * 语法;对SQL做多一层封装,对于某些数据库来说,可能效率会低一些;
原生SQL查询
- 原理:不对用户的SQL做任何封装,直接提交到数据库。
- 优势:对SQL语法没有任何限制;速度更快;
- 劣势:不计算总行数;如果查询结果较大,用户可能不知道结果集大小;在灵活分析的展现界面,不支持排序、过滤、聚合等操作;