问题一: 用CTE对一个表进行递归放入服务器数据集(因SQL语句比较复杂,为避免在不同模板多次添加数据集的繁琐,和便于统一修改,故放入服务器数据集),同时单一模板中又会多次使用不同参数过滤数据集中部分数据,比如两个下拉列表框分别显示这个数据集的两类数据(Type=1和Type=2)。如果用数据集参数注入实现过滤,无法在两个下拉列表框动态向数据集传递参数,不知有什么办法解决。或者我的思路有问题,是不是有更好的实现方式?多谢! 例子: 1. ds1:select * from table1 ${if(len(type)==0,'','where type='+type}(这里简化了SQL) 2. 需要在模板的两个下拉列表框,分别显示Type=1和Type=2的数据。 是否可以在数据字典增加设置过滤条件功能,数据集根据设置的过滤条件过滤出相应结果。
问题二: - INSERT INTO `memtab1` (`id`,`name`) (
- SELECT `id`,`name` FROM `table1` -- 查询语句已简化
- WHERE NOT EXISTS (SELECT `id` FROM `memtab1`)
- );
- SELECT * FROM `memtab1`;
复制代码因查询语句比较复杂低效,想用内存表memtab1做缓存,用触发器实现table1变化后清空memtab1,查询时如果memtab1为空就从table1读取数据插入memtab1再返回,如果memtab1不为空就直接返回。 但是将上面代码写入数据集,执行时报错(见下图),请问能不能解决?谢谢!
编辑于 2020-3-31 10:35
|