oracle11g转Gbase8s库SQL常见问题修改

  1. 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 部门管理功能有例子)

  1. 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

相关推荐
真上帝的左手1 小时前
30. 技术专题-‌应用框架组件-缓存-Redis
数据库·redis·分布式·缓存·中间件
雪芽蓝域zzs1 小时前
第 2 章:整合 MySQL + MyBatis,搭建数据库基础、实体类、Mapper、测试查询
数据库·mysql·mybatis
实泽有之,无泽虚之1 小时前
SQL Server数据库备份与还原详解
数据库·sqlserver
DevOpenClub1 小时前
高考一分一段 API:分数查位次、科类枚举与历史对照
linux·数据库·高考
Java后端的Ai之路1 小时前
Java并发编程07-等待通知机制优化循环等待
java·数据库·python
AllData公司负责人1 小时前
AllData 可定义数据中台完成信创适配|银河麒麟 + 海光X86 CPU / 华为鲲鹏ARM CPU+ OceanBase / 人大金仓国产化环境部署落地
大数据·arm开发·数据库·人工智能·oceanbase·kingbase
bksczm1 小时前
C++Redis开发(Ubuntu 22.04)
数据库·redis·缓存
zhangjw342 小时前
1-6 PostgreSQL 特色类型实战:数组、JSON & JSONB、枚举、范围类型
数据库·postgresql
杨云龙UP2 小时前
Oracle 同义词(SYNONYM)详解及 Toad for Oracle SQL 智能补全配置实战
运维·数据库·sql·oracle·同义词·toad·toad for oracle