【Oracle】【MySQL】在SQL语句中使用连接符

xixuefeng MySQL, MySQL-DEV, Oracle, SQL&Function 2017-09-19 15:34:54 2,311 次浏览 【Oracle】【MySQL】在SQL语句中使用连接符已关闭评论

在写SQL语句时,多个字符串连接是比较常用的。那么Oracle和MySQL在连接符上有什么区别呢?

Oracle和MySQL使用的字符串连接函数都是concat。

我们列举一个通用的例子,将字符串“I’m”和“18 years old”拼接到一起

从上面的例子看,在函数的使用上没有什么区别,真的没有区别吗?显然不是。上述例子我们会发现I’m后面有个空格,默认情况下两个字符串是连接到一起的,所以需要手工加个空格。假如我们把空格当成一个字符串看待的话,也就是三个字符串连接到一起。分别是“I’m”,“ ”,“18 years old”那么该怎么写呢?

MySQL:字符串与字符串之间用逗号隔开,非常的合理且好理解。

Oracle呢?

显然是报错了,原因是在Oracle中,concat函数只支持两个参数,是不是比较low,没错,这个函数在Oracle里使用率非常的低。

Oracle作为关系型数据库的老大,怎么可能这么low显然有更方便且好用的办法,那就是“||”,这个是不限制字符串的个数的(所谓不限制,也不能玩命的拼接,当超出SQL的长度时也是会有问题的。作者本人没测试过,呵呵)

Oracle利用||拼接“I’m”,“ ”,“18 years old”这三个字符串:

小结:

1:Oracle和MySQL在做字符串连接时提供的函数均为concat,但是他们还是有很大的区别的,区别在于,Oracle只支持两个参数,而MySQL可以支持多个。

2:单引号在字符串中的表现方式:两个单引号表示一个单引号。

3:单引号也可以使用ASCII来表示,如下:

4:当然,MySQL中解决单引号还有很多方式

 

 

回顶部