oracle中使用concat,concat只能连接两个字符,而“||”可以连接多个字符。
-concat只能连接两个字符串,连接多个需要嵌套调用不方便
如下
用concat时:
①.sql>select concat(‘aa’,‘bb’) from test;
结果; aabb
②.sql>select concat(‘aa’,‘bb’,‘cc’) from test;
0RA-00909:invalid number of arguments(无效字符) : 说明在oracle中只容许两个参数,但在mysql中可以拼接多个字符串;
因此,用concat连接多个字符时,需要嵌套
sql>select concat(concat('aa','bb'),'cc') from test;
结果; aabbcc
用||时:
sql>select 'aa'||'bb' from test
结果; aabb
③但在MySQL中concat可以拼接多个字符串:
select concat( id, name, sex) from studen;
甚至可以拼接其他字符;
select concat( id, '"',name, '"',sex) from studen;
但是如果要每个字段都拼接的话要写多次,很麻烦,所以使用concat_ws()函数在mysql中:
select contant_ws(',', id ,name,sex) from studen;
这样每个字段都有引号了;
但是需要注意:
concat(str,str2) 返回结果为连接产生的字符串,如果有任何一个参数为null, 则返回值为null;
concat_ws(separator,str,str2) 第一个参数制定分隔符,需要注意分隔符不能为null,如果为null,返回结果null.