SQL 拼接字符串
写sql的时候有时候用到需要拼接多个字段或者在查询出结果的字段里加入一部分固定的字符串。
方法一:
在查询到的结果后,用代码去拼接。这种方法就不在赘述。
方法二:使用数据库提供的方法CONCAT(a,b)
oracle 中concat(a,b)只能有两个参数,如果concat中连接的值不是字符串,那么oracle会尝试将其转化为字符串。
举例:select concat(className,name) from student
>>> 一班张三
二班李四
select concat(className,name) from student>>> 一班张三
二班李四
可以使用嵌套方法进行多个参数拼接:
举例:select concat(concat(gradeName,className),name)
>>>一年级一班张三
一年级二班李四
select concat(concat(className,'-'),name)
>>>一班-张三
一班-李四
可以参数为null:
举例:select concat('11',null) from student;
但是不可以不写:
举例:select concat('11',) from student;---错误例子。
Mysql数据库中concat方法可以有多个参数。参数类型可以不是字符串,Mysql会尝试将其转化为字符串。
两个参数的例子与Oracle的一样,这里举例多个字符串拼接
举例:select concat(className,'-',name) from student
>>> 一班-张三
二班-李四
Mysql的另外一个方法CONCAT_WS
concat_ws可以在待拼接的字符串中加入通用分隔符,第一个参数为分隔符,以后的参数为拼接的字符串。
举例:select concat_ws('-',grideName,className,name) from student
>>> 一年级-一班-张三
一年级-二班-李四
方法三:使用 符号
Oracle 可以使用 || 符号拼接字符串
举例:select className||'-'||name from student
>>> 一班-张三
二班-李四
Mysql中使用+时,mysql会尝试将值转化为数字进行相加,如果不能转化则认为值为0。所以+不能用来拼接字符串
举例:select '11'+'22'from student
>>> 33
举例:select 'abc'+'22'from student
>>> 22