字符串的拼接

1,Mysql

在Java、C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:"1"+"3"、"a"+"b"。
在MYSQL中也可以使用加号“+”来连接两个字符串,比如下面的SQL:

  1. SELECT '12'+'33',FAge+'1' FROM T_Employee

执行结果

  1. '12'+'33'  FAge+'1'
  2. 45    26
  3. 45  29
  4. 45  24
  5. 45  26
  6. 45  29
  7. 45  28
  8. 45  24
  9. 45  29
  10. 45  23

MYSQL会尝试将加号两端的字段值尝试转换为数字类型,如果转换失败则认为字段值为
0,比如我们执行下面的SQL语句:

  1. SELECT 'abc'+'123',FAge+'a' FROM T_Employee

执行完毕我们就能在输出结果中看到下面的执行结果:

  1. 'abc'+'123'  FAge+'a'
  2. 123  25
  3. 123  28
  4. 123  23
  5. 123  25
  6. 123  28
  7. 123  27
  8. 123  23
  9. 123  28
  10. 123  22

在MYSQL中进行字符串的拼接要使用CONCAT函数,CONCAT函数支持一个或者多个参数,
参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数MYSQL将尝试
将其转化为字符串类型,CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串做为
返回值。比如下面的SQL语句用于将用户的多个字段信息以一个计算字段的形式查询出来:

  1. SELECT CONCAT('工号为:',FNumber,'的员工的幸福指数:',FSalary/(FAge-21))

FROM T_Employee  执行完毕我们就能在输出结果中看到下面的执行结果:

  1. CONCAT('工号为:',FNumber,'的员工的幸福指数:',FSalary/(FAge-21))
  2. 工号为:DEV001的员工的幸福指数:2075.000000
  3. 工号为:DEV002的员工的幸福指数:328.685714
  4. 工号为:HR001的员工的幸福指数:1100.440000

MYSQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS,
CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,它的第一个参数值为采用的分
隔符,而剩下的参数则为待拼接的字符串值,比如执行下面的SQL:

  1. SELECT CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary) FROM T_Employee

执行完毕我们就能在输出结果中看到下面的执行结果:

  1. CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary)
  2. DEV001,25,Development,8300.00
  3. DEV002,28,Development,2300.80
  4. HR001,23,HumanResource,2200.88
  5. HR002,25,HumanResource,5200.36
  6. IT001,28,InfoTech,3900.00
  7. IT002,27,InfoTech,2800.00
  8. SALES001,23,Sales,5000.00
  9. SALES002,28,Sales,6200.00
  10. SALES003,22,Sales,1200.00

2,oracle

Oracle中使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。
比如执行下面的SQL语句:

  1. SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee
  2. WHERE FName IS NOT NULL

执行完毕我们就能在输出结果中看到下面的执行结果:

  1. 工号为||FNUMBER||的员工姓名为||FNAME
  2. 工号为DEV001的员工姓名为Tom
  3. 工号为DEV002的员工姓名为Jerry
  4. 工号为SALES001的员工姓名为John
  5. 工号为SALES002的员工姓名为Kerry
  6. 工号为SALES003的员工姓名为Stone
  7. 工号为HR001的员工姓名为Jane
  8. 工号为HR002的员工姓名为Tina
  9. 工号为IT001的员工姓名为Smith

除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句:

  1. SELECT CONCAT('工号:',FNumber) FROM T_Employee

执行完毕我们就能在输出结果中看到下面的执行结果:

  1. CONCAT(工号:,FNUMBER)
  2. 工号:DEV001
  3. 工号:DEV002
  4. 工号:HR001
  5. 工号:HR002
  6. 工号:IT001
  7. 工号:IT002
  8. 工号:SALES001
  9. 工号:SALES002
  10. 工号:SALES003

如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串,

与MYSQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,不支持两个以
上字符串的拼接。如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用。

  1. SELECT CONCAT(CONCAT(CONCAT('工号为',FNumber),'的员工姓名为'),FName) FROM
  2. T_Employee
  3. WHERE FName IS NOT NULL

执行完毕我们就能在输出结果中看到下面的执行结果:

  1. CONCAT(CONCAT(CONCAT(工号为,FNUMBER),的员工姓名为),FNAME)
  2. 工号为DEV001的员工姓名为Tom
  3. 工号为DEV002的员工姓名为Jerry
  4. 工号为SALES001的员工姓名为John
  5. 工号为SALES002的员工姓名为Kerry
  6. 工号为SALES003的员工姓名为Stone
  7. 工号为HR001的员工姓名为Jane
  8. 工号为HR002的员工姓名为Tina
  9. 工号为IT001的员工姓名为Smith

[转]mysql中的字符串的拼接的更多相关文章

  1. Oracle和Mysql中的字符串的拼接

    SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外.比如我们需要 以"工号+姓名"的方式在报表中显示一个员工的信息,那么就需要把工号和姓名两个字符 串类型的字段拼接计 ...

  2. MySql、Oracle、MSSQL中的字符串的拼接

    字符串的拼接 1,Mysql 在Java.C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:"1"+"3"."a"+"b ...

  3. MySQL中的字符串函数

    使用字符串数据 当使用字符串数据时,可以使用下面的字符数据类型. CHAR 固定长度.不足部分使用空格填充的字符串. varchar 变长字符串. text(MySQL和SQL Server)或CLO ...

  4. MySQL中的字符串

    MySQL的字符串是从1开始编号的,这与计算机编程语言有所不同,在MySQL中1代表第一个字符,-1代表最后一个字符,以此类推. MySQL中百分号“%”代表的是任意个字符,下划线“_”代表的是任意一 ...

  5. mysql中的字符串类型数据索引优化

    摘自 "高性能mysql" 对于一些字符串类型较长的字段搜索时, 可以参考如下方法

  6. MySQL中常用字符串函数

    1.字符串长度函数CHAR_LENGTH(str),LENGTH(str)  CHAR_LENGTH()返回值为字符串str的长度,长度的单位为字符.一个多字节字符算作一个单字符.对于一个包含五个二字 ...

  7. MySQL 中的字符串类型

    字符类型包括: CHAR VARCHAR BINARY VARBINARY BLOB TEXT ENUM SET CHAR 与 VARCHAR CHAR(m) m 取值范围 0-255.列宽固定,存储 ...

  8. Mysql中对字符串类型的字段进行数字值排序

    排序字段+0或者*1,类似  Java 把 其他类型转换成字符串 比如 +“”: 一.对普通数字字符串字段排序 -- 方式一 SELECT * FROM xxxxxx WHERE STATUS ' O ...

  9. mysql中的字符串截取和替换

    -- 替换 replace(字段名,"需要替换的字符","替换的字符") mysql里replace不支持正则匹配 mysql> set @needRep ...

随机推荐

  1. visual studio 设置代码注释模板

    1.C#模板文件: 路径:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Co ...

  2. block(五)用法

    最近又从网上找了点block用法的博客,供大家参考. Block简介: Block的实际行为和Function很像,最大的差别是在可以存取同一个Scope的变量值.Block实体形式如下: ^(传入参 ...

  3. Tomcat7并发和线程数

    最近一直在解决线上一个问题,表现是: Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池满了,日志看很多请求超过了1s. 服务器性能很好,Tomcat版本是 ...

  4. @property的使用方法

    参看廖大神的博客 使用@property 有时间整理一下. python 没有私有成员变量的概念,通常在变量前面加单/双下划线来表示私有变量(非共有变量). 通常在python中,以单下划线开始的成员 ...

  5. oracle 12c jdbc连接pdb报错的问题

    有同学发来消息说,oracle数据库使用jdbc连接会后报ora-12505错误. 下意识地回复说查看jdbc连接串中的数据库sid/服务名是否写错了. 对方反馈说没错.然后让他以下面的方式连接是可以 ...

  6. Android KLog源代码分析

    Android KLog源代码分析 Android KLog源代码分析 代码结构 详细分析 BaseLog FileLog JsonLog XmlLog 核心文件KLogjava分析 遇到的问题 一直 ...

  7. Intellij idea 配置热部署

    1. 采用外部tomcat的配置 1)打开右上角Run的Edit Configuration进入Tomcat配置选项页面 2)将On frame   deactivation选项更改为 Update ...

  8. 批量更新MongoDB的列。

    db.User.find().forEach( function(item){ db.User.update({"_id":item._id},{"$set": ...

  9. JAVA中如何正确的用String转Date

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date date = sdf.parse( ...

  10. UIButton 标题靠右

    _classBtn =  [UIButton buttonWithType:UIButtonTypeCustom]; _classBtn.frame = CGRectMake(  kDeviceWid ...