zoukankan      html  css  js  c++  java
  • 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题(续1之拼接字符串)

      上一篇文章http://www.cnblogs.com/valiant1882331/p/4056403.html写的太长了,所以就换了一篇,链接上一节继续

    1. 字符串的拼接
      • MySql中可以使用"+"来拼接两个字符串.
        select '12'+'33',FAge+'1' from t_employee
        View Code

        执行完毕会输出,下面是解释:在Mysql中当用+连接两个字段的时候,Mysql会尝试将字段值转换为数字类型(如果转换失败则默认字段值为0),然后进行字段的加法运算,因此,当计算'12'+'33'的时候,mysql会将"12"和"33"这两个字符串尝试转换为数字类型的12和33,然后计算12+33的值,所以第一列是45,同样,在计算fage+'1'的时候,由于fage本来就是数字类型,不需要转换,会尝试转换'1',然后计算fage+1作为计算列的值.

    1. select 'abc'+'123',fage+'a' from t_employee
      View Code

      执行完毕不能准换成功输出

      • 在MYSQL中进行字符串的拼接要使用CONCAT函数(CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数mysql将尝试将其转换为字符串类型,CONCAT函数会将所有参数的顺序拼接成一个字符串做为返回值)
        select concat('工号为:',fnumber,'的员工的幸福指数:',fsalary/(fage-21)) from t_employee
        View Code

        执行完毕会输出concat支持只有一个参数的用法,这时的concat可以看作是一个将这个参数值尝试转换为字符串类型值的函数

      •   MYSQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS(CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,它的第一个参数值为采用的分隔符,而剩下的参数则为待拼接的字符串值)
        select concat_ws(',',fnumber,fage,fdepartment,fsalary)from t_employee
        View Code

        执行完毕结果输出

      • MSSQLServer(MSSQLServer中可以直接使用加号“+”来拼接字符串)

        select '工号为'+fnumber+'的员工姓名为'+fname from t_employee where fname is not null
        View Code

        执行完毕结果输出

      • Oracle(Oracle中使用“||”进行字符串拼接,方式与MSSQLServer中的"+"一样)
        SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee WHERE FName IS NOT NULL
        View Code

        执行完毕输出结果;
        并且.除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接

        SELECT CONCAT('工号:',FNumber) FROM T_Employee
        View Code

        执行完毕输出结果;
        如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串

        SELECT CONCAT('年龄:',FAge) FROM T_Employee
        View Code

        执行完毕输出结果
             与MYSQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,否则会报参数无效,如果要进行多个字符串的拼接的话,可以使用多个concat()函数嵌套使用

        SELECT CONCAT(CONCAT(CONCAT('工号为',FNumber),'的员工姓 为'),FName) FROM T_Employee WHERE FName IS NOT NULL
        View Code

        执行完毕输出结果

      • DB2(DB2中使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样)
        SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee WHERE FName IS NOT NULL
        View Code

        执行完毕输出结果
          除了“||”,DB2还支持使用CONCAT()函数进行字符串拼接

        SELECT CONCAT('工号:',FNumber) FROM T_Employee
        View Code

        执行完毕输出结果与Oracle不同,如果CONCAT中连接的值不是字符串,则DB2不会尝试进行类型转换而报错;比如

        --这句是错误的
        SELECT CONCAT('年龄:',FAge) FROM T_Employee
        View Code

        运行以后DB2会报出:未找到类型为 "FUNCTION" 命名为 "CONCAT" 且具有兼容自变量的已授权例!!!!!!与MYSQL的CONCAT()函数不同,DB2的CONCAT()函数只支持两个参数.如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用

        SELECT CONCAT(CONCAT(CONCAT('工号为',FNumber),'的员工姓 为'),FName) FROM T_Employee WHERE FName IS NOT NULL
        View Code

        执行完毕输出结果

  • 相关阅读:
    SpringMVC+Apache Shiro+JPA(hibernate)
    Win7系统上配置使用Intellij Idea 13的SVN插件
    标志一个方法为过时方法
    Java模板引擎 HTTL
    Spring security与shiro
    墨刀 手机app原型工具
    java远程调试(断点)程序/tomcat( eclipse远程调试Tomcat方法)
    结合MongoDB开发LBS应用
    基于LBS的地理位置附近的搜索以及由近及远的排序
    discuz 发布分类信息,能不能设置单版块去掉“发帖子”(默认点发帖后为自定义的默认分类信息模版)
  • 原文地址:https://www.cnblogs.com/valiant1882331/p/4059132.html
Copyright © 2011-2022 走看看