zoukankan      html  css  js  c++  java
  • [转]mysql中的字符串的拼接

    字符串的拼接

    1,Mysql

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

    Sql代码  收藏代码
    1. SELECT '12'+'33',FAge+'1' FROM T_Employee   

     执行结果

    Sql代码  收藏代码
    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语句: 

    Sql代码  收藏代码
    1. SELECT 'abc'+'123',FAge+'a' FROM T_Employee   

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

    Html代码  收藏代码
    1.    
    2. 'abc'+'123'  FAge+'a'   
    3. 123  25   
    4. 123  28   
    5. 123  23   
    6. 123  25   
    7. 123  28   
    8. 123  27   
    9. 123  23   
    10. 123  28   
    11. 123  22   

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

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

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

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

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

    Sql代码  收藏代码
    1. SELECT CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary) FROM T_Employee   

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

    Java代码  收藏代码
    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语句:

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

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

    Html代码  收藏代码
    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语句:

    Sql代码  收藏代码
    1. SELECT CONCAT('工号:',FNumber) FROM T_Employee   

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

    Html代码  收藏代码
    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()函数嵌套使用。

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

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

    Html代码  收藏代码
    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   
  • 相关阅读:
    看《到了30岁还是处男,似乎会变成魔法师》有感
    2021-1-6复习js的基础知识点
    2020-1-5的学习内容总结
    javascript
    css
    HTML
    语音红包小程序开发项目建议以及营销玩法
    3天小程序快速入门教程+案例demo,免费索取!
    关于微擎小程序的操作的步骤,如何上传小程序?
    获取微信公众号文章封面图的技巧/网站
  • 原文地址:https://www.cnblogs.com/dirgo/p/9487070.html
Copyright © 2011-2022 走看看