- Select 语句字段别名时,加AS
Oracle: String sql=" select distinct dwbm ID,dwmc TEXT from t_zs_zsdw order by dwbm asc";
GBase8s: String sql=" select distinct dwbm as ID,dwmc as TEXT from t_zs_zsdw order by dwbm asc";
2.字段名称转化问题:decode改case when 写法
Oracle: decode(XDD,'Y','是','')
Gbase8s:CASE WHEN XDD='Y' THEN '是' ELSE '' END
(DepartmentDAOMysqlImpl 部门管理功能有例子)
- Null 和 ''空串的处理:
Oracle: ''(空字符串)等价于 NULL,存进去就是 NULL,无法区分 NULL 和空串,所以判断的时候 null 和 ''一样,都用is NULL匹配
Gbase8s:'' 是零长度字符串,是一个有效值,和 NULL 是两个值,;
另:char类型是个定长值,会补空格,需特殊处理
判断的时候需要补加长度处理
char类型:col is null or LENGTH(TRIM(col)) = 0
varchar类型:col is null or col = '' (统一采用char的判断也可以)
4.字符串拼接的处理:
Oracle: 字符串拼接可直接用||,例:select ywmc,Zjcx II hpzl as zjhp,2sf,gzdm,drv_veh from ywlx where 1=1 select ywmc,zjcx || hpzl AS zjhp ,zsf,gzdm,drv_veh from ywlx where 1=1 ORDER BY DRV_VEH,YWDM
Gbase8s:用concat,还需注意空和null的处理,例:select ywmc,CONCAT (CASE WHEN zjcx IS NULL THEN '' ELSE zjcx END ,CASE WHEN hpzl IS NULL THEN '' ELSE hpzl END ) AS zjhp ,zsf,gzdm,drv_veh from ywlx where 1=1 ORDER BY DRV_VEH,YWDM