拼接符“II”在Oracle和HGDB中使用的差异

文章目录

环境

系统平台:Microsoft Windows (64-bit) 10

版本:5.6.4

症状

如下情况所示:在Oracle中和HGDB中使用拼接符"||"结果不一致。

Oracle:

sql 复制代码
SQL> select null||'123' from dual ;

NUL
--------------------------------
123

HGDB:

sql 复制代码
highgo=# select null||'123' from dual;
 ?column?
--------------------------------

(1 行记录)

问题原因

在Oracle中和HGDB中使用拼接符"||"拼接NULL时,结果不一致。

解决方案

解决方案一:

使用concat()函数进行拼接,取代"||",如下所示:

sql 复制代码
highgo=# select concat(null,'123');
 concat
--------
 123
(1 行记录)

解决方案二:

使用coalesce()函数将null转换为'',如下所示:

sql 复制代码
highgo=# select coalesce(null,'')||'123';
 ?column?
----------
 123
(1 行记录)
相关推荐
老仙儿19 小时前
Room数据库框架的使用
数据库
一个有温度的技术博主19 小时前
深入多级缓存:JVM进程缓存实战与数据库表拆分策略
jvm·数据库·缓存
jnrjian19 小时前
Oracle Text 安装
数据库·oracle
荒川之神19 小时前
ORACLE 12C/19C 手工建立多租户数据库
数据库·oracle
a里啊里啊19 小时前
常见面试题目集合
linux·数据库·c++·面试·职场和发展·操作系统
北有树19 小时前
Redis专题面试题总结
数据库·redis·缓存
cjfeii19 小时前
2025年数据库三大顶会论文与Keynote详细介绍
数据库
rannn_11120 小时前
【Redis|实战篇7】黑马点评|附近商铺、用户签到、UV签到
java·数据库·redis·后端·uv
鬼先生_sir20 小时前
JWT + Spring Security / OAuth2.0:微服务统一登录、鉴权、单点登录全解析
数据库
云边有个稻草人20 小时前
KES核心伪列深度解析:OID与ROWID机制、差异及实践
数据库·rowid核心机制·oid 的双重特性