有关oracle与mysql转换之字符串连接符'||'及连接函数concat()

小记:

初次接手中心的工作,由于项目需要进行改造升级,也因为要将项目使用的oracle库改成使用mysql库,所有的配置sql都要改造,也就有了改造sql的过程中遇到的问题。

刚开始上手时,一个sql搞半天,也改不成功。毕竟sql不仅涉及到sql语法,还有业务知识。

归根结底,还是要学习oracle和mysql,以及尽快熟悉业务

正文:

oracle

select '你好' || ',' || cust_name from  customer where cust_id = '123';

|| 这个连接符在oracle语法中表示将各个字符连接成字符串。

mysql

select concat('你好' , ',' , cust_name) from  customer where cust_id = '123';

mysql中concat(str1,str2,str3,…)函数,函数内部多个字符以逗号分隔,可以实现和 || 基本一样的功能,唯一的不同点在于,|| 可以无视NULL,但是concat()函数,只要有一个值是NULL,就返回NULL

举例:

oracle中||

  select '你好啊' || NULL || ',小明' from dual;

执行结果:
有关oracle与mysql转换之字符串连接符'||'及连接函数concat()_第1张图片
mysql中concat()函数

  select '你好啊' || NULL || ',小明' VALUE;

执行结果:
有关oracle与mysql转换之字符串连接符'||'及连接函数concat()_第2张图片

重点:

CONCAT(str1, str2, str3,…)中只要出现了NULL,返回的就是NULL一定要注意哈!!!

扩展:
mysql中,当连接的字符要以固定的字符,比如逗号分隔时,还有一个比CONCAT(str1, str2, str3,…)更好用的函数,就是CONCAT_WS(‘分隔符’,str1, str2, str3,…),其中第一个参数是要分隔的字符

举个栗子:

SELECT CONCAT_WS(',','你好','小明','小红','小花') value;

有关oracle与mysql转换之字符串连接符'||'及连接函数concat()_第3张图片

要重新开始持续小记录了。

去年刚毕业,就被派到辽宁出差,从此开启颠倒昼夜的加班生活。

作为小小的程序媛妹子,要学习的还有好多好多,要重新拾起记录的习惯了。

加油加油

你可能感兴趣的:(SQL)