1. 模糊查询
模糊查询是利用sql关键字加上通配符“_”,“%”等组合进行查询的。支持Oracle、MySql、SqlServer。
1)"%":表示任意0个或多个字符,支持Oracle、MySql、SqlServer。
Select * from 表名 where 列名 like '%' //查询出全部
Select * from 表名 where 列名 like 'x' //完全匹配查询
Select * from 表名 where 列名 like '%x' //右为x,前面可以有任意位字符
Select * from 表名 where 列名 like 'x%' //左为x,后面可以有任意位字符
Select * from 表名 where 列名 like '%x%' //中间为x,左右都可以有任意位字符
2) "_":表示单个字符,支持Oracle、MySql、SqlServer。
Select * from 表名 where 列名 like '_x' //右为x,前面有一位字符
Select * from 表名 where 列名 like '__x' //右为x,前面有两位位字符
Select * from 表名 where 列名 like 'x__' //左为x,后面有两位位字符
3)"[]":表示括号内所列字符中的一个
指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
注:如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
sqlserver
Select * from 表名 where 列名 like '[张李王]三' //将找出“张三”,“李三”,“王三”(而不是“张李王三”);
Select * from 表名 where 列名 like '老[1-9]' //将找出“老1”,“老2”,……,“老9”;
oracle
select * from 表名 where regexp_like(列名,'[张李王]三')
mysql
select * from 表名 where 列名 rlike '[张李王]三'
select * from 表名 where 列名 regexp '[张李王]三'
4)特殊字符模糊查询
sqlserver
用[ ]将特殊字符包含:select * from 表名 where 列名 like '_[%]_'
mysql
用\将特殊字符转义:select * from 表名 where 列名 like '_\%_'
oracle
用escape关键字将特殊字符转义:select * from 表名 where 列名 like '_\%_' escape '\'
5)ACCESS的模糊查询比较特殊是'?','*' 。 如 Select * from 表名 where 列名 like '*b*'
2. 动态表和动态条件
1)动态表:SELECT * FROM ${if(table='订单','订单','销量')}
2)动态条件
SELECT * FROM 销量 where 1=1 ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")}
3. 参数引用
总结: 参数的作用是过滤数据、实现动态标题、根据参数值的不同显示不同值等
1)实现动态标题
输入公式=$地区 + "销售额"
4. 参数为空选择全部
两种方式:
1) 设置参数面板属性
点击参数面板空白处,在右侧的属性中,设置不勾选点击查询前不显示报表内容
2)设置参数为空选择全部
设置数据集参数:SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,"","and 货主地区 = '" + area + "'")}
设置报表参数:if(len($area)==0,nofilter,$area)
5. 文件数据集参数过滤
1)不能以数字、$符号开头。
2)变量名只能是字母(a-z A-Z)、数字(0-9)、下划线(_)、(@)或中文的组合,并且之间不能包含空格。
3)变量名中不能含有? * . - 等字符和空格。
4)变量名不能使用编程语言的保留字。比如小写的true、false等保留字。但大写的TRUE、FALSE可以。
经典命名规则
1)匈牙利命名法
该命名法是在每个变量名的前面加上若干表示数据类型的字符。基本原则是:变量名=属性+类型+对象描述。如i表示int,所有i开头的变量命都表示int类型。s表示String,所有变量命以s开头的都表示String类型变量。
2)骆驼命名法
正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。驼峰命名法跟帕斯卡命名法相似,只是首字母为小写,如userName。因为看上去像驼峰,因此而得名。
3)帕斯卡命名法,即pascal命名法
做法是首字母大写,如UserName。
注意事项
1)字符参数有英文单引号'${adce}',数字参数没有英文单引号${adce}。其中adce为参数。
2)参数值的引用格式为参数前面加$符号,如$adce。
3)模板参数与全局参数重名时,采用模板参数。